最近在读论文与访问别人网站的的时候,发现有许多作者会将自己的研究成果(如数据集等)上传到网络地图上供人访问,以促使开放科学发展与研究成果传播。其中有一类就是上传到 ArcGIS 的在线地图平台。存储在这一平台上的数据并不能“直接”下载到本地用于后续研究,因为它们并不是以 shapefile 或 geojson 等通用地理数据格式直接存储,而是保存在 ArcGIS Server 这一服务目录上,在使用时通过地图服务(Map Service)调用的。机缘巧合下,我琢磨出了两种简单的方法,可以快速从 ArcGIS REST 后端提取所需要的数据。
获取在线链接
在浏览器中使用开发者工具,在“Network”选项卡下刷新,以找到目标数据链接。
对比高德地图与 ArcGIS 在线地图获取矢量数据的不同,可以发现,前者的数据以 json 格式明文存储,可以通过一个指向文件的链接直接获取;而后者的链接则指向了一个 ArcGIS 服务器目录的端点链接。这个链接中的rest/services
就表示了 rest 的服务端点,用户可以从中看到根目录中所有的服务列表与文件夹。注意,arcgis 这个链接最后的?f=json
并不代表能直接下载 json 格式的数据,访问返回的只是目标图层的元数据。
REST (Representational State Transfer) 是一个通过使用简单的 HTTP 协议以共享信息的架构。
方法一:使用 esridump
首先,通过 pip 安装 esridump:
pip install esridump
最简单的方式就是通过命令行使用:
esri2geojson [Esri REST layer endpoint URL] [out_name.geojson]
以下面这个链接为例:
可以直接访问这个链接(如有的话,需去除最后的?f=json
的字符),之后会进入ArcGIS Server 的服务目录:
于在线地图中展示图层,效果如下:
使用 esridump 下载数据:
在 QGIS 中打开下载的数据,发现要素和属性表都正确地获取到了:
方法二:通过 QGIS 下载
获取到链接后,直接在 QGIS 中新建一个 ArcGIS REST Servers 链接,这个不需要精确到图层。待数据全部渲染完成后,再导出即可。这个方法加载数据相对更慢一些。
1周前
哈哈哈,写的太好了https://www.lawjida.com/
3周前
《古宅疑案(上)(经典电影修复特别版 )》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/144972.html
2024年11月30日 21:36
《大话修仙》喜剧片高清在线免费观看:https://www.jgz518.com/xingkong/45326.html
2024年10月19日 14:24
哈哈哈,写的太好了https://www.cscnn.com/
2024年10月01日 21:06
看的我热血沸腾啊https://www.237fa.com/
2024年09月28日 15:43
定期更新軟體:保持資料庫軟體最新對於保護其免受漏洞和安全威脅至關重要。定期安裝資料庫供應商提供的安全性修補程式和更新,以確保您的系統免受最新威脅。
2024年09月23日 16:37
叼茂SEO.bfbikes.com