Esri以外のクライアント(Python)からEsriジオプロセシングサービスを使用していますか?


8

ArcPyを起動したり、クライアントマシンにESRIをインストールしたりすることなく、PythonスクリプトからESRIジオプロセシングサービスを利用できるはずだと思います。たとえば、一連のポイントの位置を取得し、それらの値をファイルとして含むcsvファイルを返すジオプロセシングサービスを作成します。ESRIがインストールされていないマシンで実行されるpythonクライアントアプリケーションにこのサービスコールを含めたいと思います。サービスを開始するための残りの呼び出しを作成して、arcpyなしで結果を消費できませんか?

あなたがこれをどのように行うかの例を誰かが持っていますか?

おかげで、コリン

回答:


8

ArcGIS for Serverは、JSON over HTTPを提供します。Pythonには、組み込みのHTTPクライアント(urllibなど)と、より優れたコミュニティパッケージ(Requests、httplib2)があります。そして、JSONとPythonは、チップとサルサのように連携します。


Pythonでurllibとowslibを使って作業を行ったので、それがどのように行われるかを確認できます。JSONレスポンスをデシリアライズする方法を調べます。私は、私が最もなど、クライアント・ファイル・システムからの入力を指定し、モデルパラメータのようなもので、残りの応答を構築する方法で混乱したquess
コリン・タルバート

ESRIジオコーダーサービスに投稿リクエストを送信するには、次のようなPythonリクエストモジュールを使用します。r = requests.post(geocoderUri、params = {"addresses":payload、 "f": "json"、 "outSR": 4326})ペイロードvarには、サービスが予期している形式でアドレスデータをエンコードするjsonオブジェクトが含まれています。
DavidF 2014

2

残りの応答を構成するために、JavaScriptのAPIがFirefoxのFirebugを使用してジオプロセシングサービスとどのように相互作用するかを調べると役立つ場合があります。通常、すべてのパラメータは、ベアまたは一部のJSONオブジェクトであり、UrlEncoded形式でURLのクエリ文字列に追加されます(またはPOSTリクエストを介して送信されます)。次に、リクエストのf = jsonフラグで取得した、返されたJSON結果を解析する必要があります。


2

Esriは、GeoServices REST仕様と呼ばれるものを公開しており、ここからアクセスできます

これには、REST通信に関する多くの詳細が含まれており、ArcGIS Serverの基盤となっています。これにより、各サービスタイプのリクエストとレスポンスの構造に関する多くの詳細が得られます。セクション6.0(52ページ)は、GPサービスを扱うセクションです。おそらく、これは、リクエストをどのように構成するべきかを理解するのに役立ちます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.