ESRI REST API'sini nasıl uygulayabilirim?


24

ESRI , ArcGIS REST API'sini açık teknoloji olarak piyasaya sürdüklerini açıkladı . Sql Server 2008 çalıştıran IIS7 ile çalışan bir ISS var.

Belli bir spesifikasyonla (ideal olarak ESRI'lar) uyumlu mekansal tabloları ortaya çıkarmak için WCF kullanarak C # yazabildiğimi göstermek için iyi bir yürüyüş bilen var mı?

ESRI'nin özelliklerinin nerede olduğunu bilen var mı?

Yanıtlar:



8

Jason'ın yukarıda gönderdiği bağlantıyı kullandım. Piyasaya sürüldüğü zaman resmi özelliklerin çok daha farklı olacağını hayal bile edemiyorum. Çoğunlukla bir toplamanız oldu, Fiddler'ı ateşledi, 10.0 örnek sunucuyu vurdu ve uygulamada hacklemeye başladı. İmkansız olan hiçbir şey yok, sadece dikkate alması gereken çok sayıda küçük sorun var. Bizimkileri% 100 uyumlu bile yapmıyoruz ama% 85'i kapsıyor ve tüm müşteri API'leri oldukça iyi çalışıyor gibi gözüküyor (başlamamın tek nedeni buydu)

İşte bir demo katalog (orada çok sayıda küçük hata :) [bFlood - old link]

AppEngine (python) üzerinde çalışıyoruz ve temel mekansal yapılarla oldukça sıkı bir şekilde birleştiğini düşünüyoruz, ancak muhtemelen iyi bir Net Net WCF projesine dönüştürülebilir. Yine de nasıl dağıtacağımızdan emin değilim.

şerefe brian

Güncelleme - 3/8/12 - Bu gönderiyi stackexchange'te açılırken gördüm, bu yüzden içeriği güncelleyeceğimi düşündüm. Arc2Earth Sync beta sürümünü denerseniz FeatureService'in birkaç dakika içinde çalışmasını sağlayabilirsiniz. arka uç Google Fusion Tables ve CartoDB ile çalışır, ancak diğer sağlayıcıları çok yakında destekleyeceğiz. ArcView 9.2 veya daha yenisi dışında bir şeye ihtiyacınız yok ...

İşte ArcGIS.com mobil uygulamalarını kullanarak birkaç dakika içinde saha verisi toplamaya nasıl başlayacağınızı gösteren bir blog yazısı : http://www.arc2earth.com/2012/03/arc2earth-sync-live-mobile-data-collection-in-5 -minutes /


2
Brian Flood? Kirk Kuykendall? Tüm ESRI forumları grubu tekrar bir araya geldi!
Sebastian Good,

Hey Brian, senden haber almak harika. Ödülün birisini, Jason ile sizin anlattığınız şeyi aynen yapmaya ve sonuçları codeplex gibi bir yere göndermeye ikna edeceğini umuyorum. Olmazsa, belki biraz çatırtacağım. @Sebastian, sizi de burada görmek güzel!
Kirk Kuykendall

2
@kirk - evet, bir topluluk projesinin bir noktada başlamasını beklerdim. Birden fazla uzamsal arka uca, muhtemelen haritaların / katmanların / özelliklerin herhangi bir tedarikçisinin versiyonunu (ör. Sql azure, postgis, geoserver, mapguide vb.) Bağlamak için bir eklenti mimarisine izin verecek kadar esnek olması gerekir @Sebastian - evet, ESRI forumları gerçekten işe yarıyor. şerefe!
bFod

7

Esri'nin REST API'si hakkında bildiğim tek belge burada kendi çevrimiçi yardımları:

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

Bu, tüketici açısından bir sağlayıcıdan daha çok yazılır, ancak kırılabilir olmalıdır.

Bu API'nin özel mülk olan bazı bölümleri ( çıktı biçimlerinin bazıları ) ve bu biçim özellikleri de sunulmadığı sürece açık kaynaklı bir proje tarafından gerçekleştirilmesi imkansızdır.

Ayrıca, bazı REST API'leri özellikle RESTful değildir. Örneğin, Özellik Hizmetine bakın. Kaynaklarda çalışmak için standart HTTP fiilleri kullanmak yerine, ekleme / güncelleme / silme / sorgulama için ayrı "uç noktalar" var gibi görünmektedir. Bu beni şaşırtıyor; Esri'nin orada REST'i anlayan oldukça zeki insanlar olduğunu biliyorum. Tahminime göre, bunlar aramaların bir çeşit SOAP arayüzüne harita oluşturduğunu ve esri, aralarında tutarlılık sağlamaları halinde, müşteriler ve müşteriler için daha kolay olacağını düşünüyordu.

Benim fikrim? Yalnızca veri paylaşmaya bakıyorsanız (harita yapılandırması, meta veriler vb. Değil) ve acele etmiyorsanız, Microsoft EDM'deki mekansal veri türlerini nasıl temsil edeceklerini bulana kadar beklemekten daha iyi olabilirsiniz. Bu yerinde, OData'yı ve muhtemelen RIA destekli OData'yı kullanarak mekânsal tablolarınıza gerçekten RESTful erişimi kolayca oluşturabilirsiniz. Bu, bildiğim kadarıyla gökyüzündeki turta olabilir.


Sağol Jason. Özel çıktı biçimleri hakkında bu iyi bir nokta. İlk geçişte sadece json, html ve image isteyeceğim. İdeal olarak, Sql Server 2008'den veri toplamak ve ESRI'nin web SDK'lerinden herhangi birinin sindirebileceği bir formda geri dönmek için .NET 4'te WCF WebHttp Services kullanan bir C # projesi.
Kirk Kuykendall

Ah, özür dilerim, evet. Esri client yazılımını kullanmak istediğiniz alt metni özledim. Kesinlikle, bu durumda API'yi uygulamaya çalışmayı mantıklı kılar
JasonBirch

2

SQL Server 2008 Spatial'daki uzamsal tabloları göstermeyi mi arıyorsunuz? ESRI MapIt bunu zaten yapıyor ve lisanslamanın AGS'li kişilerin ESRI MapIt'e erişmesine izin verdiğine inanıyorum.

Bunun nasıl göründüğüne dair bazı ekranlar blogumda bulunabilir: http://geo.geek.nz/development/hiding-databases-from-unauthorised-users-when-using-esri-mapit/

Kendin için bir şeyler yazmaya gerek yok mu? ;)

Şerefe


Hey Jithen, bu PDF'de ( esri.com/library/brochures/pdfs/esri-mapit.pdf ) ESRI REST API, WCF servisleri veya tamamen farklı bir şey kullanılarak tartışıldı mı? AGS kullanmıyorsanız MapIt'ın ücretsiz olmadığını tahmin ediyorum; öyleyse, topluluğun ESRI REST API'sini doğrudan MS SQL Server Spatial'dan, özellikle de SQL Express'i çalıştırabilen küçük uygulamalar için ek ücret ödemeden maruz bırakan bir şey geliştirmesi yararlı olacaktır.
JasonBirch

Merhaba Jithen - MapIT'in deneme sürümünü 1.0 olarak indirdim ve o zaman onu IIS'nin çalıştığı makineye kurmam gerekiyordu. Servis sağlayıcım buna izin vermiyor. Ayrıca MapIT'yi dev bir sunucuda çalıştıramadım, ardından web sitesini bir üretim sunucusuna dağıttım - üretim sunucusunda çalıştırılması gerekiyordu. Belki bu değişti?
Kirk Kuykendall

1
@ JasonBirch Merhaba Jason, SDS, REST API'sinden ayrı bir uygulamadır ancak SQL Server Spatial'a karşı sorgu çalıştırma olanağı sağlayan benzer bir arayüz sağlar. Örnek bir sorgu: servername / SDS / databases / sandbox / dbo.PostcodeBoundaries /… Yanıt, API ise eğer herhangi biri tarafından okunabilir. ESRI MapIt birçok önemli ve kullanışlı özelliğe sahiptir. Örneğin anında projeksiyon ve yazmaya değmeyen veri yükleyici.
jiriteach

@Kirk Merhaba Kirk, 1.1. temel olarak yükleyicide geliştirmelerin yanı sıra SDS'yi kolayca devreye alma becerisi olan bir dizi yeni özellik içerir. Azure desteği şimdi de dahil edilmiştir. MapIt sadece IIS'ye ve SQL Server'ınızla konuşma yeteneğine ihtiyaç duyuyor. Kurulumu ve çalıştırılması aslında çok kolay, ancak daha önce de belirtildiği gibi, şimdi başsız bir UI ile masmavi içine yerleştirme yeteneği bu yüzden size yardımcı olabilir. Şerefe
jiriteach

2

Bunu zaten bir uygulamada yaptım. Tam REST api'yi tam olarak uygulamadım, ancak JSON'u doğru şekilde çalıştırmak ve biçimlendirmek için bir sorgu görevi almak için yeterli. Son noktamı oluşturmak için ASP. NET MVC kullandım. Bunu bir yıl önce WCF ile yapmaya çalıştım ve JSON çıktısı çalışacak şekilde biçimlendirilmedi. MVC'nin püf noktası, geri çağırma sorgusu parametresini çekecek ve doğru jsonp yanıtını verecek olan bir JSONP sonucuna sahip olduğunuzdan emin olmaktır. Bir şey yollamaya çalışacağım. Buradaki cevaba bir göz atabilirsiniz:

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

Ancak, yalnızca geri arama parametresi kullanılır:

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

Düzenleme: İşte ASP.NET MVC'de bir JSONP sonucunun nasıl uygulanacağı

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

Düzenleme # 2: İşte hızlıca yaptığım ve dropbox'a koyduğum bir kod örneği.

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


1

ArcGIS'in işlevini yerine getirme işlevini değiştiriyor olabilirsiniz. Bu API'yi destekleyen biri mevcutsa, belki de bir açık kaynaklı proje için kendi bağdaştırıcınızı yazmanız durumunda, böyle bir sistemi uygulamak için mevcut bir açık kaynaklı projenin kullanılmasını tavsiye ederim. Belki biri var ama henüz çok zor görünmedim. Henüz tam bir API özelliği yayınladıklarından emin değilim, ancak acele ediyorsanız mevcut API belgelerini kullanabilir ve uygulamanızı mevcut ESRI yazılımına karşı test edebilirsiniz.


Teşekkürler Dandy, sonunda açık kaynak kodlu bir proje olacağını tahmin ediyorum. ESRI’nin bunu duyurması garip buluyorum, ancak şartname için bir bağlantı vermiyor. Bir REST API özelliğinin nasıl görüneceğinden bile emin değilim. Sadece bir kod örneği ile birlikte bir örnek örneği (.NET ile) nasıl uygulayacağınızı gösteren yardımcı olacaktır.
Kirk Kuykendall

FGDB sisteminin açılması için etrafta yayılan bazı yutturmacaları hatırlıyorum, ancak bir spesifikasyon yayınlamak yerine sadece bir kod API açtıklarını düşünüyorum. Umutlanmıyorum ama sadece tüketici belgelerini @JasonBirch'in dediği gibi kullanarak bir şeyi kolayca uygulayabilmelisiniz.
Dandy



-1

@ JasonBirch - bence bunun için asıl mesele, esri apps / apis / arcgis.com ile bütünleşebilme yeteneği. Eğer esri bu fişleri ucuza kullanmaktan vazgeçerse (ücretsiz), çok daha az önemli hale gelir. ArcGIS.com ile ne yapmayı planladıkları ve hatta şu anda nasıl lisanslandıkları bana net değil. Bunu, web uygulamalarının kayıtlı olabileceği veri / hizmetler için merkezi bir konum olarak gördüm, esri verileri için bir uygulama mağazası gibi. Üçüncü şahıslar çok kiracılı web (bulut) uygulamaları kaydetmekte, esri bir kesim uygulamaktadır ve uygulamanız, diğer uygulamalarla uyumlu tüm alıcılar için anında kullanılabilir durumdadır. bu ışık altında, geri kalan api'nin açılması ve hub ile mümkün olduğunca çok sayıda hizmetin bütünleşmesine izin vermek mantıklıdır. jeo uzamsal veri arama / depolama, metalaştırılma yolunda hızla ilerliyor, bu yüzden onu bir adım yukarı taşıyın ve uygulama alanını kontrol etmeye çalışın.

OData yorumunun haklı olduğunu düşünüyorum ama IMO, bu bir yolunu kapatıyor. ve daha önemlisi, kapsamlı bir şekilde dağıtılmış ve çok sevilen bir müşteri uygulaması olmadan (Google Earth’te bir şey olmadan), iyi yazılmış herhangi bir özelliğin asılmadan vazgeçme potansiyeli vardır. OData'daki durumun bu olmadığını söyleyerek, VS'de ücretsiz olarak bu kadar kablolu çalışacak birçok MS dev var, ancak kısa vadede göremiyorum. 2 kuruşum ...

(btw, oldukça kısa bir yorum uzunluğu var gibi görünüyor, bu nedenle bunun yerine yeni cevap var)


1
Evet, bu site kasıtlı olarak tartışmadan kaçınmak için tasarlandı :) FYI, Haris ve ben OData'yı GeoREST ile birlikte çalışarak çalışıyoruz (çalışıyor, nagging yapıyorum.
JasonBirch

Bu gerçekten ilginç geliyor, çevrimiçi herhangi bir bilgi var mı?
bFlood

Henüz değil, ama bunun hakkında sohbet etmek isterim. Zaten birkaç kez fazla düşündük :) BTW, @ kullanıcı
adımı eklerseniz

ahhh, tamam @ JasonBirch öyle (bunu tahmin etmeliydim). kesinlikle konuşalım, OData desteğini A2E bulutlarına asmayı çok isterim (geometriyi işlemek için aklı başında bir yöntem olduğu sürece ama şimdi sizin ve
haris'in
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.