ESRI REST APIを実装するにはどうすればよいですか?


24

ESRIは、ArcGIS REST APIをオープンテクノロジーとしてリリースすると発表しました。IIS7でSql Server 2008を実行しているISPがあります。

WCFを使用してC#を記述し、特定の仕様(理想的にはESRIの仕様)に準拠した空間テーブルを公開する方法を示す良いウォークスルーを知っている人はいますか?

ESRIの仕様がどこにあるか誰もが知っていますか?

回答:



8

上記のジェイソンのリンクを使用しました。いつリリースされるかは想像できませんが、公式の仕様は大きく異なります。それは主に袖をロールアップし、Fiddlerを起動し、10.0サンプルサーバーにヒットし、実装でハッキングを開始しました。不可能なことは何もありません。考慮すべき小さな問題がたくさんあるだけで退屈です。100%の互換性もありませんが、85%をカバーし、すべてのクライアントAPIがうまく機能しているようです(それが最初にそれを行った唯一の理由でした)

ここにデモカタログがあります(そこには小さなバグがたくさんあります:) [bFlood-古いリンクを削除]

AppEngine(python)で実行しており、基礎となる空間構造とかなり緊密に結合していますが、おそらく適切な.Net WCFプロジェクトにすることができます。しかし、どのように配布するのかわかりません

乾杯ブライアン

更新-2012年3月8日-この記事が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フォーラムバンド全体が再び集まったようです!
セバスチャングッド

ブライアンさん、ご連絡ありがとうございます。賞金が、あなたとジェイソンが説明したとおりのことを誰かに促し、その結果をコードプレックスのような場所に投稿することを望んでいます。そうでない場合は、多分私はそれにクラックを取るでしょう。@セバスチャン、ここで会えてうれしい!
カーククイケンドール

2
@kirk-はい、ある時点でコミュニティプロジェクトが立ち上がることを期待しています。複数の空間バックエンドを可能にするのに十分な柔軟性が必要です。おそらく、プロバイダーバージョンのマップ/レイヤー/機能(たとえば、sql azure、postgis、geoserver、mapguideなど)を接続するプラグインアーキテクチャです@Sebastian-yea、ESRI forums with実際に機能する検索。乾杯!
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アクセスを簡単に作成できます。これは、私が知っているすべての人にとっては空のパイかもしれません。


ありがとうジェイソン。これは、独自の出力形式についての良い点です。最初のパスは、json、html、およびimageだけです。理想的には、.NET 4のWCF WebHttpサービスを使用してSql Server 2008からデータを取得し、ESRIのWeb SDKのいずれかがダイジェストできる形式で返すC#プロジェクトが理想です。
カーククイケンドール

ああ、ごめん、はい。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/

自分で何かを書く必要はありませんか?;)

乾杯


Hey Jithen、このPDF(esri.com/library/brochures/pdfs/esri-mapit.pdf)でESRI REST API、WCFサービス、またはまったく異なるものを使用した空間データサービスについて説明していますか?AGSを実行していない場合、MapItはフリーではないと推測します。その場合、特にSQL Expressを実行できる小さなアプリの場合、追加費用なしでMS SQL Server SpatialからESRI REST APIを直接公開する何かを開発することは、コミュニティにとって有益です。
ジェイソンバーチ

こんにちはJithen-1.0のMapITの試用版をダウンロードしましたが、その時点でIISを実行している同じマシンにインストールする必要がありました。私のISPはこれを許可していません。また、開発サーバーでMapITを実行してからWebサイトを運用サーバーに展開できませんでした。運用サーバーで実行する必要があります。これは変わったのでしょうか?
カーククイケンドール

1
@JasonBirchこんにちは、ジェイソン、SDSはREST APIの実装とは別の実装ですが、SQL Server Spatialに対してクエリを実行する機能を提供する同様のインターフェイスを提供します。クエリの例:servername / SDS / databases / sandbox / dbo.PostcodeBoundaries /… APIがあれば、応答を読み取ることができます。ESRI MapItには、多くの重要で便利な機能があります。たとえば、オンザフライの投影とデータローダーは、書く価値はありません。
ジルテアハ

@カークこんにちはカーク、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.jsonpj_dop.jsonpj_jp_jsonpj_jp_jsonp_jsonp_jsonp_jsonp_jsonp_jsonpj_jp_jsonpjj_pj_jjp_jjp_jjp_jp_jjp_jjp_jp_jjp_jp_jp_jp_jp_jp_jp_jp_jp_jp_jp_jp_jp_jp_jp_jp_jp_jp_jp_jp_jp_jp_jp_jjp_j_jp_jp_jp_jsonp_jsonp_jsonp_jsonp]

ただし、コールバックパラメーターのみが使用されます。

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をサポートするシステムが利用可能になったら、既存のオープンソースプロジェクトを利用してそのようなシステムを実装することをお勧めします。おそらく、オープンソースプロジェクト用の独自のアダプターを作成します。たぶん1つは存在しますが、私はまだあまり一生懸命に見ていません。まだ完全なAPI仕様をリリースしているかどうかはわかりませんが、急いでいる場合は、既存のAPIドキュメントを使用して、既存のESRIソフトウェアに対して実装をテストできます。


Dandyに感謝します。最終的にはオープンソースプロジェクトが行われると思います。ESRIがそれを発表するのは奇妙ですが、仕様へのリンクは提供していません。REST APIの仕様がどのようになるかさえわかりません。(.NETを使用して)仕様を実装する方法を示すコードサンプルと一緒の仕様の例が役立ちます。
カーククイケンドール

FGDBシステムが開かれていることについて広まっていた誇大宣伝を覚えていますが、仕様を公開するのではなく、それに対するコードAPIのみを開いたと思います。希望は持てませんが、@ JasonBirchが言ったように、消費者向けドキュメントを使用するだけで簡単に何かを実装できるはずです。
ダンディ



-1

@JasonBirch-これを行うことの最大の魅力は、esri apps / apis / arcgis.comと統合できることだと思います。esriがこれらを安価に(無料で)使用してプラグを引っ張ると、それはそれほど重要ではなくなります。彼らがArcGIS.comで何をしようとしているのか、そして現在どのようにライセンスされているのかさえ、私にはわかりません。Webアプリケーションを登録できるデータ/サービスの中心的な場所であると考えました。これは、esriデータのアプリストアのようなものです。サードパーティはマルチテナントWeb(クラウド)アプリを登録し、esriがカットし、残りのAPI仕様と互換性のあるすべてのユーザーがアプリを即座に利用できるようにします。この観点から、残りのAPIを開き、できるだけ多くのサービスをハブと統合できるようにすることは理にかなっています。地理空間データ検索/ストレージはすぐにコモディティ化されようとしているので、ノッチを上げてアプリスペースを制御してみてください。

ODataのコメントにはメリットがあると思いますが、IMOにはそれはありません。さらに重要なことは、広く配布され、広く愛されているクライアントアプリ(Google Earthのようなもの)がなければ、よく書かれた仕様はぶどうの木に枯れる可能性があります。ODataの場合はそうではありませんが、VSでこれを無料で接続するMS開発者がたくさんいますが、短期的には見ていません。私の2セント...

(ところで、コメントの長さはかなり短いようですので、代わりに新しい答え)


1
ええ、このサイトは意図的に議論を避けるように設計されています:)参考までに、ハリスと私はODataをGeoRESTで動作させることに取り組んでいます(彼は動作しています、私はしつこいです。拡張属性を示す文字列のジオメトリ(KML / GML / GeoJSON)
ジェイソンバーチ

それは本当に面白いように聞こえますが、オンラインで情報はありますか?
bFlood

まだではありませんが、それについてチャットしたいです。すでに何度も
考え直しました

ああ、わかりました@JasonBirchそれは(これを推測する必要があります)。間違いなくチャットしましょう、A2EクラウドからODataサポートをオフにしたいと思います(ジオメトリを処理するための健全な方法がある限り、あなたとハリスがケースにいることを知っているので、私たちはすべて良いです!)
bFlood
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.