web-dev-qa-db-ja.com

ArcGIS Onlineマップからデータをスクレイピングするにはどうすればよいですか?

ArcGISマップからデータをスクレイピングしたい。次のマップには、赤い機能をクリックするとポップアップが表示されます。プログラムでそのデータにアクセスするにはどうすればよいですか?

リンク: https://cslt.maps.arcgis.com/apps/MapSeries/index.html?appid=2c9f3e737cbf4f6faf2eb956fa26cdc5

9
curious_nustian

注:アクセスするArcGIS Onlineアイテムのアクセスを尊重し、制約を使用してください。疑わしい場合は、他人のデータのコピーを保存しないでください。

ArcGIS Online REST interface を使用すると、ArcGISOnlineアイテムの背後にあるデータを比較的簡単に取得できます。HTTPリクエストを作成してJSONテキストを解析できる環境を使用する必要があります。現在のほとんどのプログラミング言語には、これらの機能が組み込まれているか、これらの機能で使用できるライブラリがあります。

コードが従うことができる一般的なワークフローは次のとおりです。

  1. アプリIDと アイテムデータエンドポイント を使用して、アプリのJSONテキストを表示します。

    https://www.arcgis.com/sharing/rest/content/items/2c9f3e737cbf4f6faf2eb956fa26cdc5/data

  2. そのテキストでwebmapを検索し、アプリが次のWebマップを使用していることを確認します。

    • d2b4a98c39fd4587b99ac0878c420125
    • 7b1af1752c3a430184fbf7a530b5ec65
    • c6e9d07e4c2749e4bfe23999778a3153
  3. これらのWebマップのいずれかについて、アイテムデータエンドポイントを確認します。

    https://www.arcgis.com/sharing/rest/content/items/d2b4a98c39fd4587b99ac0878c420125/data

  4. operationalLayersのリストは、データを収集できるフィーチャレイヤーのURLを指定します。例えば:

    https://services2.arcgis.com/gWRYLIS16mKUskSO/arcgis/rest/services/VHR_Areas/FeatureServer/

  5. 次に、where0=0(または必要なもの)とoutFields*を指定して query を実行します。

    https://services2.arcgis.com/gWRYLIS16mKUskSO/arcgis/rest/services/VHR_Areas/FeatureServer/0/query?where=0%3D0&outFields=%2A&f=json

    人間が読める形式のリクエストフォームと結果を表示する場合は、代わりにf=htmlを使用してください。

    機能サービスには、リクエストごとに取得できる機能の数に制限があるため、ジオメトリまたは属性値でフィルタリングすることをお勧めします。 ドキュメントを読む 機能サービスクエリで実行できるすべてのことを学びます。

10
Gary S.