ESRI REST API를 어떻게 구현할 수 있습니까?


24

ESRI는 ArcGIS REST API를 공개 기술로 발표한다고 발표했다 . IIS7과 함께 Sql Server 2008을 실행하는 ISP가 있습니다.

누구나 WCF를 사용하여 C #을 작성하여 특정 사양 (이상적으로 ESRI)을 준수하는 공간 테이블을 노출하는 방법을 보여주는 방법을 잘 알고 있습니까?

ESRI의 사양이 어디에 있는지 아는 사람이 있습니까?

답변:



8

방금 Jason이 위에 게시 한 링크를 사용했습니다. 출시 당시 공식 사양은 크게 다를 수 있습니다. 주로 롤업 소매 업체 였고, 피들러를 가동시키고 10.0 샘플 서버를 공격하고 구현을 해킹하기 시작했습니다. 불가능한 것은 없으며, 고려해야 할 작은 문제가 많기 때문에 지루합니다. 우리는 100 % 호환되지는 않지만 85 %를 커버하고 모든 클라이언트 API는 꽤 잘 작동하는 것 같습니다 (그것이 처음 시작한 유일한 이유였습니다)

다음은 데모 카탈로그입니다 (많은 버그가 있습니다 :) [bFlood-기존 링크 제거]

AppEngine (python)에서 실행 중이며 기본 공간 구조와 매우 밀접하게 결합되어 있지만 적절한 .Net WCF 프로젝트로 만들 수 있습니다. 어떻게 배포 할 지 잘 모르겠습니다.

건배 브라이언

업데이트-3/8/12-방금이 게시물이 stackexchange에서 팝업되는 것을 보았으므로 내용을 업데이트 할 것이라고 생각했습니다. Arc2Earth Sync 베타를 사용 해보면 FeatureService를 몇 분 안에 실행할 수 있습니다. 백엔드는 Google Fusion Tables 및 CartoDB 와 함께 작동 하지만 다른 제공 업체도 곧 지원할 예정입니다. ArcView 9.2 이상을 제외하고는 아무것도 필요하지 않습니다 ...

다음 은 ArcGIS.com 모바일 앱을 사용하여 몇 분 안에 필드 데이터 수집을 시작하는 방법을 보여주는 블로그 게시물입니다 . http://www.arc2earth.com/2012/03/arc2earth-sync-live-mobile-data-collection-in-5 -의사록/


2
브라이언 홍수? 커크 쿠 킨달? 전체 ESRI 포럼 밴드가 다시 함께 돌아온 것 같습니다!
Sebastian Good

이봐 브라이언, 잘 들었어요 바운티가 당신과 제이슨이 묘사 한 것을 정확하게 수행하고 결과를 codeplex와 같은 곳에 게시하기를 바라고 있습니다. 그렇지 않다면, 나는 그것을 깨뜨릴 것이다. @Sebastian, 여기도 만나서 반갑습니다!
Kirk Kuykendall

2
@kirk-예, 어느 시점에서 커뮤니티 프로젝트가 시작될 것으로 기대합니다. 여러 공간 백엔드를 지원할 수있을 정도로 유연해야합니다. 아마도 플러그인 아키텍처는 모든 제공자 버전의 맵 / 레이어 / 기능 (예 : sql azure, postgis, geoserver, mapguide 등)을 연결할 수 있습니다. @Sebastian-예, ESRI 포럼 실제로 작동하는 검색. 건배!
bFlood

7

esri의 REST API에 대해 알고있는 유일한 문서는 여기 온라인 도움말에 있습니다.

http://help.arcgis.com/EN/arcgisserver/10.0/apis/rest/index.html

이것은 공급자보다 소비자의 관점에서 작성되었지만 해킹 가능해야합니다.

이 API의 일부는 매우 독점적이며 (일부 출력 형식 ) 이러한 형식 스펙도 제공되지 않는 한 공개 소스 프로젝트에서 구현할 수 없습니다.

또한 일부 REST API는 특히 RESTful하지 않습니다. 예를 들어, 기능 서비스를보십시오. 표준 HTTP 동사를 사용하여 리소스에서 작동하는 대신 추가 / 업데이트 / 삭제 / 쿼리에 대해 별도의 "종점"이있는 것 같습니다. 이것은 나를 퍼즐. 나는 esri에 REST를 이해하는 똑똑한 사람들이 있다는 것을 알고 있습니다. 내 생각에 이러한 호출은 일종의 SOAP 인터페이스에 매핑되며 esri는 일관성을 유지하면 클라이언트와 클라이언트가 더 쉬울 것이라고 생각했습니다.

내 의견? 데이터 공유 (맵 구성, 메타 데이터 등이 아님) 만보고 있고 급하지 않은 경우 Microsoft가 EDM에서 공간 데이터 유형을 나타내는 방법을 파악할 때까지 기다리는 것이 좋습니다. 이를 통해 OData 및 아마도 RIA 가능 OData를 사용하여 공간 테이블에 진정으로 RESTful 액세스 할 수 있습니다. 이것은 내가 아는 모든 것에 대한 하늘에있을 수 있습니다.


고마워 Jason. 그것은 독점적 인 출력 형식에 대한 좋은 지적입니다. 먼저 json, html 및 image를 원할 것입니다. 이상적으로는 .NET 4의 WCF WebHttp Services를 사용하여 Sql Server 2008에서 데이터를 가져와 ESRI의 모든 웹 SDK가 소화 할 수있는 형식으로 반환하는 C # 프로젝트가 이상적입니다.
Kirk Kuykendall

아 죄송합니다 esri 클라이언트 소프트웨어를 서비스하려는 하위 텍스트를 놓쳤습니다. 이 경우 API 구현을 시도하는 것은 당연합니다
JasonBirch

2

SQL Server 2008 Spatial에서 공간 테이블을 노출하고 있습니까? ESRI MapIt은 이미이 작업을 수행하고 있으며 라이센스를 통해 AGS 사용자는 ESRI MapIt에 액세스 할 수 있습니다.

이것이 어떻게 보이는지에 대한 화면은 내 블로그에서 찾을 수 있습니다 : http://geo.geek.nz/development/hiding-databases-from-unauthorised-users-when-using-esri-mapit/

직접 쓸 필요가 없습니까? ;)

건배


Jithen은 공간 데이터 서비스 가 ESRI REST API, WCF 서비스 또는 완전히 다른 것을 사용 하여이 PDF ( esri.com/library/brochures/pdfs/esri-mapit.pdf )에 설명되어 있습니까? AGS를 실행하지 않으면 MapIt이 무료라고 생각합니다. 그렇다면 커뮤니티는 추가 비용없이 특히 SQL Express를 실행할 수있는 작은 앱에 대해 MS SQL Server Spatial에서 직접 ESRI REST API를 노출하는 것을 개발하는 것이 좋습니다.
JasonBirch

안녕하세요 Jithen-1.0 버전의 MapIT 평가판을 다운로드했으며 당시 IIS가 실행되는 동일한 컴퓨터에 설치해야했습니다. 나의 ISP는 이것을 허용하지 않습니다. 또한 개발자 서버에서 MapIT를 실행 한 다음 웹 사이트를 프로덕션 서버에 배포 할 수 없었습니다. 프로덕션 서버에서 실행해야합니다. 아마도 이것이 바뀌었을까요?
Kirk Kuykendall

1
@JasonBirch 안녕 Jason, SDS는 REST API와는 별도로 구현되었지만 SQL Server Spatial에 대해 쿼리를 실행할 수있는 유사한 인터페이스를 제공합니다. 쿼리 예 : servername / SDS / databases / sandbox / dbo.PostcodeBoundaries /… API가 있으면 응답을 읽을 수 있습니다. ESRI Map 여러 가지 중요한 기능이 있습니다. 쓰기 가치가없는 온더 플라이 프로젝션 및 데이터 로더를 예로들 수 있습니다.
jiriteach

@ 커크 안녕 커크, 1.1. 여기에는 주로 로더의 기능 향상뿐만 아니라 SDS를 쉽게 배포 할 수있는 여러 가지 새로운 기능이 포함됩니다. Azure 지원도 이제 포함되었습니다. MapIt에는 IIS와 SQL Server와 통신 할 수있는 기능 만 있으면됩니다. 실제로 설정 및 실행이 매우 쉽지만 언급했듯이 헤드리스 UI를 사용하여 Azure에 지금 배치 할 수 있으므로 도움이 될 수 있습니다. 건배
jiriteach

2

이미 응용 프로그램 에서이 작업을 수행했습니다. 전체 REST API를 완전히 구현하지는 않았지만 쿼리 작업이 JSON을 올바르게 실행하고 형식을 지정하기에 충분합니다. ASP .NET MVC를 사용하여 끝점을 작성했습니다. 약 1 년 전에 WCF 로이 작업을 시도했지만 JSON 출력이 작동하는 방식으로 형식이 지정되지 않았습니다. MVC의 요령은 콜백 쿼리 매개 변수를 가져 와서 올바른 jsonp 응답을 만드는 JSONP 결과를 얻는 것입니다. 나는 무언가를 올리려고 노력할 것이다. 여기에서 답변을 볼 수 있습니다.

http://www.ci.austin.tx.us/GIS/TrafficViewer/Home/JsonpIncidents/query?f=json&where=1%3D1&returnGeometry=true&spatialRel=esriSpatialRelIntersects&outFields= * & outSR = 4326 & callback = dojo.io.script_jsonp_joson

그러나 콜백 매개 변수 만 사용됩니다.

http://www.ci.austin.tx.us/GIS/TrafficViewer/Home/JsonpIncidents?callback=woot

편집 : 다음은 ASP .NET MVC에서 JSONP 결과를 구현하는 방법입니다

/programming/758879/asp-net-mvc-returning-jsonp

편집 # 2 : 다음은 dropbox에 빠르게 작성하고 적용한 코드 예제입니다.

http://dl.dropbox.com/u/28924446/EsriGeoServicesExampleMvc3.zip


1

ArcGIS의 기능을 대체하는 것처럼 들릴 수 있습니다. API를 지원하는 시스템을 사용할 수있게되면 기존 오픈 소스 프로젝트를 사용하여 그러한 시스템을 구현하는 것이 좋습니다. 아마도 오픈 소스 프로젝트 용 어댑터를 작성하는 것이 좋습니다. 어쩌면 하나가 존재하지만 아직 열심히 보지 못했습니다. 나는 그들이 아직 전체 API 사양을 발표했는지 확신 할 수 없지만 서두르면 기존 API 문서를 사용하고 기존 ESRI 소프트웨어에 대해 구현을 테스트 할 수 있습니다.


감사합니다 Dandy, 결국에는 오픈 소스 프로젝트가있을 것 같습니다. ESRI가 그것을 발표하지만 스펙에 대한 링크를 제공하지 않는 것이 이상합니다. REST API 사양이 무엇인지 잘 모르겠습니다. .NET으로 구현하는 방법을 보여주는 코드 샘플과 함께 사양의 예가 도움이 될 것입니다.
Kirk Kuykendall

FGDB 시스템이 널리 퍼져 있다는 과대 광고가 기억 나지만 사양을 게시하는 대신 코드 API 만 열었다 고 생각합니다. 나는 희망을 얻지 못했지만 @JasonBirch가 말한 것처럼 소비자 문서를 사용하여 무언가를 쉽게 구현할 수 있어야합니다.
Dandy



-1

@ JasonBirch-심지어이 작업을 수행하는 주된 이유는 esri apps / apis / arcgis.com과 통합 할 수있는 능력이라고 생각합니다. esri가 저렴하게 (무료로) 플러그를 사용하면 훨씬 덜 중요해집니다. 그들이 ArcGIS.com으로 무엇을하려고하는지, 그리고 현재 어떻게 라이센스를 받았는지 확실하지 않습니다. 웹 애플리케이션을 등록 할 수있는 데이터 / 서비스의 중심 위치 인 esri 데이터의 앱 스토어처럼 보았습니다. 타사는 다중 테넌트 웹 (클라우드) 앱을 등록하고 esri는 중단되며 나머지 API 사양과 호환되는 모든 응시자가 즉시 앱을 사용할 수 있습니다. 이러한 관점에서 나머지 API를 열고 가능한 많은 서비스를 허브와 통합 할 수 있습니다. 지리 공간 데이터 검색 / 저장은 빠르게 상품화가 진행되고 있으므로 한 단계 위로 이동하여 앱 공간을 제어하십시오.

OData 의견에는 장점이 있지만 IMO는 장점이 있다고 생각합니다. 더 중요한 것은 널리 배포되고 사랑받는 클라이언트 앱 (Google 어스)이 없으면 잘 작성된 사양이 포도 나무에 시들어 버릴 가능성이 있다는 것입니다. 그것이 OData의 경우라고 말하지는 않지만, VS에서 무료로 유선으로 연결할 MS 개발자가 많이 있지만 단기적으로는 볼 수 없습니다. 내 2 센트 ...

(btw, 꽤 짧은 주석 길이가있는 것처럼 보이므로 새로운 대답 대신)


1
예,이 사이트는 의도적으로 토론을 피하도록 설계되었습니다.) 참고로 Haris와 저는 GeoData와 함께 OData를 사용하여 작업하고 있습니다 (그는 일하고 있습니다.
JasonBirch

정말 흥미로운 것 같습니다. 온라인에 정보가 있습니까?
bFlood

아직은 아니지만 그것에 대해 이야기하고 싶습니다. 우리는 이미 여러 번 생각했습니다 :) BTW, 내 @username을 포함하면 응답 알림을받습니다 :)
JasonBirch

아아, 좋아 @JasonBirch입니다 (이것을 추측해야합니다). 채팅을 시작하겠습니다. A2E 클라우드에서 OData 지원을 중단하고 싶습니다 (지오메트리 처리를위한 적절한 방법이 있지만 이제는 여러분과
haris
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.