ESRI는 ArcGIS REST API를 공개 기술로 발표한다고 발표했다 . IIS7과 함께 Sql Server 2008을 실행하는 ISP가 있습니다.
누구나 WCF를 사용하여 C #을 작성하여 특정 사양 (이상적으로 ESRI)을 준수하는 공간 테이블을 노출하는 방법을 보여주는 방법을 잘 알고 있습니까?
ESRI의 사양이 어디에 있는지 아는 사람이 있습니까?
ESRI는 ArcGIS REST API를 공개 기술로 발표한다고 발표했다 . IIS7과 함께 Sql Server 2008을 실행하는 ISP가 있습니다.
누구나 WCF를 사용하여 C #을 작성하여 특정 사양 (이상적으로 ESRI)을 준수하는 공간 테이블을 노출하는 방법을 보여주는 방법을 잘 알고 있습니까?
ESRI의 사양이 어디에 있는지 아는 사람이 있습니까?
답변:
ESRI가 GeoServices REST Specification을 발표 한 것으로 보입니다 . 나는 이것이 당신이 찾고있는 것이라고 생각합니다.
방금 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 -의사록/
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 액세스 할 수 있습니다. 이것은 내가 아는 모든 것에 대한 하늘에있을 수 있습니다.
SQL Server 2008 Spatial에서 공간 테이블을 노출하고 있습니까? ESRI MapIt은 이미이 작업을 수행하고 있으며 라이센스를 통해 AGS 사용자는 ESRI MapIt에 액세스 할 수 있습니다.
이것이 어떻게 보이는지에 대한 화면은 내 블로그에서 찾을 수 있습니다 : http://geo.geek.nz/development/hiding-databases-from-unauthorised-users-when-using-esri-mapit/
직접 쓸 필요가 없습니까? ;)
건배
이미 응용 프로그램 에서이 작업을 수행했습니다. 전체 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
ArcGIS의 기능을 대체하는 것처럼 들릴 수 있습니다. API를 지원하는 시스템을 사용할 수있게되면 기존 오픈 소스 프로젝트를 사용하여 그러한 시스템을 구현하는 것이 좋습니다. 아마도 오픈 소스 프로젝트 용 어댑터를 작성하는 것이 좋습니다. 어쩌면 하나가 존재하지만 아직 열심히 보지 못했습니다. 나는 그들이 아직 전체 API 사양을 발표했는지 확신 할 수 없지만 서두르면 기존 API 문서를 사용하고 기존 ESRI 소프트웨어에 대해 구현을 테스트 할 수 있습니다.
@ JasonBirch-심지어이 작업을 수행하는 주된 이유는 esri apps / apis / arcgis.com과 통합 할 수있는 능력이라고 생각합니다. esri가 저렴하게 (무료로) 플러그를 사용하면 훨씬 덜 중요해집니다. 그들이 ArcGIS.com으로 무엇을하려고하는지, 그리고 현재 어떻게 라이센스를 받았는지 확실하지 않습니다. 웹 애플리케이션을 등록 할 수있는 데이터 / 서비스의 중심 위치 인 esri 데이터의 앱 스토어처럼 보았습니다. 타사는 다중 테넌트 웹 (클라우드) 앱을 등록하고 esri는 중단되며 나머지 API 사양과 호환되는 모든 응시자가 즉시 앱을 사용할 수 있습니다. 이러한 관점에서 나머지 API를 열고 가능한 많은 서비스를 허브와 통합 할 수 있습니다. 지리 공간 데이터 검색 / 저장은 빠르게 상품화가 진행되고 있으므로 한 단계 위로 이동하여 앱 공간을 제어하십시오.
OData 의견에는 장점이 있지만 IMO는 장점이 있다고 생각합니다. 더 중요한 것은 널리 배포되고 사랑받는 클라이언트 앱 (Google 어스)이 없으면 잘 작성된 사양이 포도 나무에 시들어 버릴 가능성이 있다는 것입니다. 그것이 OData의 경우라고 말하지는 않지만, VS에서 무료로 유선으로 연결할 MS 개발자가 많이 있지만 단기적으로는 볼 수 없습니다. 내 2 센트 ...
(btw, 꽤 짧은 주석 길이가있는 것처럼 보이므로 새로운 대답 대신)