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仕様をリリースしたばかりのようです。これがあなたが探しているものだと思います。
上記のジェイソンのリンクを使用しました。いつリリースされるかは想像できませんが、公式の仕様は大きく異なります。それは主に袖をロールアップし、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 -分/
私が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.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
ArcGISの機能を置き換えるだけで終わるように思えます。そのAPIをサポートするシステムが利用可能になったら、既存のオープンソースプロジェクトを利用してそのようなシステムを実装することをお勧めします。おそらく、オープンソースプロジェクト用の独自のアダプターを作成します。たぶん1つは存在しますが、私はまだあまり一生懸命に見ていません。まだ完全なAPI仕様をリリースしているかどうかはわかりませんが、急いでいる場合は、既存のAPIドキュメントを使用して、既存のESRIソフトウェアに対して実装をテストできます。
@JasonBirch-これを行うことの最大の魅力は、esri apps / apis / arcgis.comと統合できることだと思います。esriがこれらを安価に(無料で)使用してプラグを引っ張ると、それはそれほど重要ではなくなります。彼らがArcGIS.comで何をしようとしているのか、そして現在どのようにライセンスされているのかさえ、私にはわかりません。Webアプリケーションを登録できるデータ/サービスの中心的な場所であると考えました。これは、esriデータのアプリストアのようなものです。サードパーティはマルチテナントWeb(クラウド)アプリを登録し、esriがカットし、残りのAPI仕様と互換性のあるすべてのユーザーがアプリを即座に利用できるようにします。この観点から、残りのAPIを開き、できるだけ多くのサービスをハブと統合できるようにすることは理にかなっています。地理空間データ検索/ストレージはすぐにコモディティ化されようとしているので、ノッチを上げてアプリスペースを制御してみてください。
ODataのコメントにはメリットがあると思いますが、IMOにはそれはありません。さらに重要なことは、広く配布され、広く愛されているクライアントアプリ(Google Earthのようなもの)がなければ、よく書かれた仕様はぶどうの木に枯れる可能性があります。ODataの場合はそうではありませんが、VSでこれを無料で接続するMS開発者がたくさんいますが、短期的には見ていません。私の2セント...
(ところで、コメントの長さはかなり短いようですので、代わりに新しい答え)