如何从 ArcGIS Online 地图中抓取数据?

cur*_*ian 10 web-services esri arcgis web-scraping arcgis-online

我想从 ArcGIS 地图中抓取数据。当我们单击红色要素时,以下地图会弹出一个窗口。如何以编程方式访问该数据?

链接:https : //cslt.maps.arcgis.com/apps/MapSeries/index.html?appid=2c9f3e737cbf4f6faf2eb956fa26cdc5

Gar*_* S. 20

注意:请遵守您访问的任何 ArcGIS Online 项目的访问和使用限制。如有疑问,请勿保存他人数据的副本。

ArcGIS Online的REST接口,使得它相对简单落后ArcGIS Online的项目的数据。您需要使用可以发出 HTTP 请求和解析 JSON 文本的环境。大多数当前的编程语言要么内置这些功能,要么提供具有这些功能的库。

这是您的代码可以遵循的一般工作流程。

  1. 使用应用 ID 和项目数据端点查看应用的 JSON 文本:

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

  2. 搜索该文本webmap并查看该应用程序是否使用以下网络地图:

    • 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/0

  5. 然后只需使用of (或任何你想要的)和一个of运行查询where0=0outFields*

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

    使用f=html,如果你想看到一个人类可读的申请表和结果,而不是。

    请注意,要素服务对每个请求可以获得的要素数量有限制,因此您可能希望按几何或属性值进行过滤。阅读文档以了解您可以使用要素服务查询执行的所有操作。

  • 是的,这个答案是有效的。您正在查看的项目是仪表板,其结构与OP询问的故事地图不同。在[仪表板项目数据](https://www.arcgis.com/sharing/rest/content/items/5eced796595b4ee585bcdba03e30c127/data)中,有三个“mapWidget”对象,每个对象都有一个“itemId”,即一个Web地图项目 ID。您可以使用任何这些项目的数据(例如,[此处](https://www.arcgis.com/sharing/rest/content/items/bbf83b52ae774f2783e8f685d1d43b21/data);另外两个对我来说几乎相同)并且从这个答案的第 3 步开始。 (4认同)
  • 这非常有帮助! (2认同)