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

Posted

技术标签:

【中文标题】如何从 ArcGIS Online 地图中抓取数据?【英文标题】:How do I scrape data from an ArcGIS Online map? 【发布时间】:2018-10-14 03:33:37 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

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

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

    使用应用 ID 和 item data endpoint 查看应用的 JSON 文本:

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

    在该文本中搜索 webmap 并查看该应用使用以下网络地图:

    d2b4a98c39fd4587b99ac0878c420125 7b1af1752c3a430184fbf7a530b5ec65 c6e9d07e4c2749e4bfe23999778a3153

    查看任何这些 web 地图的项目数据端点:

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

    operationalLayers 列表指定了您可以从中获取数据的要素图层 URL。例如:

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

    然后只需运行 query 与 where0=0(或任何你想要的)和 outFields*

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

    如果您想查看可读的请求表单和结果,请改用f=html

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

【讨论】:

是的!我明白你关于数据权利的观点!经市湖当局许可,出于教育目的需要数据!非常感谢您的回答确实帮了很多忙。 很高兴我的回答对您有所帮助。 这个答案还有效吗?我正在寻找数据源here。找不到webmap,只有mapWidget,然后是datasets.dataSource.id——看起来像这样:1200f3f1-8f72-4ea6-af16-14f19e9a4517——它似乎不适用于 /共享/休息/内容/项目//data请求 是的,这个答案是有效的。您正在查看的项目是仪表板,它与 OP 询问的故事地图的结构不同。在dashboard item data 中,有三个mapWidget 对象,每个对象都有一个itemId,它是一个Web 地图项ID。您可以使用这些项目的任何数据(例如here;其他两个似乎与我几乎相同)并从此答案的第 3 步开始。 这非常有帮助!

以上是关于如何从 ArcGIS Online 地图中抓取数据?的主要内容,如果未能解决你的问题,请参考以下文章

Engine加载ArcGIS Online和ArcGIS Server发布的地图服务

arcgis如何加载地图

如何关闭arcgis online

ArcGIS微课1000例0025:ArcGIS Online当前未连接到在线资源终极解决办法

如何利用ArcGIS软件制作专题地图

arcgis路名标注