当前位置:   article > 正文

arcgis 获取json经纬度_城市路网实时路况爬取与ArcGIS可视化

福州大学经纬坐标json文件

57da302310ecd9bad67b585f54db4d7f.png

1、目标

通过高德地图API进行城市路网实时路况数据爬取、城市行政区地理信息数据爬取与城市交通拥堵态势可视化。

2、使用的工具

Python3.6 IDLE、Excel2016、记事本编辑器、ArcGIS 10.5、申请的高德开发者KEY(免费)。

3、主要思路

本文的思路是使用Python的requests模块爬取高德API的返回信息,将返回的信息数据(JSON),通过代码解析的方式存入CSV文件中,再导入ArcGIS中进行可视化处理。

4、高德对用户的API行为限制问题的解决

根据高德提供的交通态势信息API文档,注意到高德提供了两种获取交通态势信息的方式,一种是通过设定矩形区域(传入左下角以及右上角坐标)的方式,一种是通过设定圆形区域的方式(设定圆心坐标和半径),本文使用的是设定矩形区域的方式。 但是问题来了,高德对用户的API行为进行了限制,要求设定的矩形区域的对角线长度不超过10公里,但这是难不倒程序猿的,可以使用网格的思想来突破这一限制,如下图:

e555b1d6e864db99196d0ff7fc7ced9f.png

即将爬取区域分成多个网格,每个网格在高德规定的10公里范围之内即可,这样虽然增加了API的调用次数,但不得不说是较为合适的解决方案,本思想同样也适用于POI信息的爬取,在本文中笔者使用了简单的for循环来实现网格爬取,当然读者也可以参考:

百度地图POI数据爬取,突破百度地图API爬取数目“400条“的限制。 这篇博文中的LocaDiv类来实现更为复杂化的网格爬取方式。

5、具体做法

  • 5.1 python 工具包安装,本文需要requests、pandas、 json和time包

安装方法:

摁WIN键+R键打开运行,然后输入cmd,回车进入命令提示符。

输入,pip install+python包

如 pip install requests

  • 5.2 路况数据爬取

5.2.1 申请key(注意要申请绑定服务为web服务的key)

e9d5b9b228fa0a75cdf4796ea142bde5.png

5.2.2 路况数据获取

选择路况拥堵状态的API接口,需要输入的数据包括你的key、区域选择方式(矩形,圆域)详见交通态势信息API文档

示例:

矩形

'https://restapi.amap.com/v3/traffic/status/rectangle?rectangle='+str(loc)+'&key=你的密钥'

loc为选择矩形区域左下角的经纬度,如120.247875,31519864

圆形

"https://restapi.amap.com/v3/traffic/status/circle?location=116.3057764,39.98641364&radius=1500&key=你的密钥&extensions=all"

本文以矩形为例

首先输入代码,运行代码后,从与代码所在同一文件夹中获得文件BigRoads.csv,.csv文件可由Excel或记事本打开

  1. import requests
  2. import pandas as pd
  3. import json
  4. import time
  5. #初始API的URL
  6. url="https://restapi.amap.com/v3/traffic/status/rectangle?key=你的密钥&extensions=all&rectangle="
  7. #设定整个网格左下角坐标的经纬度值
  8. baselng=119.
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/474078
推荐阅读
相关标签
  

闽ICP备14008679号