标题: 如何一键获取高德交通态势数据 [打印本页]

作者: 皖南人    时间: 2020-5-12 17:19
标题: 如何一键获取高德交通态势数据

欢迎点击标题下方蓝字关注城市数据人
欢迎加入星标,内容不会错过

小编:交通态势数据,是指当前道路交通状况,我们比较熟悉的是在百度高德地图APP上面显示的红、黄、绿等拥堵与畅通状况,而这些图是栅格数据,无法进行量化分析,那么是否能够获取到这个数据呢,其实也是非常简单的,接下来为大家解读下如何获取,同时和大家分享如何生成道路矢量数据~


规划云网站道路肌理开篇

(和本文无关,纯粹觉得好看)

guihuayun.com/maps/en


首先我们需要知道交通态势数据来自哪里,目前高德是比较容易通过API获取的,我们首先看看高德对交通态势的一些定义:


交通态势是一类简单的HTTP接口,提供根据用户输入的内容能够返回希望查询的交通态势情况。注意他并不是每个城市都有:


目前支持城市:北京,上海,广州,深圳,宁波,武汉,重庆,成都,沈阳,南京,杭州,长春,常州,大连,东莞,福州,青岛,石家庄,天津,太原,西安,无锡,厦门,珠海,长沙,苏州,金华,佛山,济南,泉州,嘉兴,西宁,惠州,温州,中山,合肥,乌鲁木齐,台州,绍兴,昆明。


使用API前需先申请Key,若无高德地图API账号需要先申请账号。


如上所述,我们首先要申请一个高德的Key,这是API运作的基础。接下来分为四个部分给大家介绍:


第一部分:获取高德Key(用本文工具的话可以略过)

第二部分:使用规划云工具获取交通态势

第三部分:Arcmap中把交通态势转为道路矢量

第四部分:拓展分析,破除区域范围限制


01

第一部分:获取高德Key


高德Key是和高德API通信的钥匙,要想使用高德的API服务,就需要Key。申请网址在这里:


https://console.amap.com/dev/key/app


注册并登录进入之后,点击“创建新应用”:



然后填写应用名称,选择应用类型,这里可以随意填写:



然后点击“添加”按钮,添加一个Key:



这里注意选择“Web服务”,注意里面有一个“Web端”,是做网站在网页用的,不要选他:



上面填写Key名称方便自己记忆,底下的IP白名单部分可以不填,只要不把自己的Key告知别人即可。勾选“阅读并同意”框,点击提交,就可以获得自己的Key了:



上图中红色部分就是自己的Key了。


02

第二部分:使用规划云工具获取交通态势


高德交通态势API介绍链接在这里:


https://lbs.amap.com/api/webservice/guide/api/trafficstatus


不过先别忙去看,我们把这个放在最后讨论,我们先介绍工具,大家可以使用这个工具,获取部分地区的交通态势数据,工具链接:


http://www.guihuayun.com/tools.php?id=22


界面截图:



打开页面之后,可以看到有三个框,分别是:


(1)输入搜索地址

(2)输入高德WebAPI的key

(3)坐标


“输入搜索地址框”,是为了给大家选点用的,因为要输入经纬度,所以放个地图,方便大家搜索,点击地图,右侧的“坐标”框会发生变化,显示当前地图上点选的经纬度。


接下来,点击确定,就可以获取交通态势了。这个交通态势是指“当前填写的经纬度”为中点,对角线10公里范围内的交通态势。


点击后界面如下:



点击下载,直接下载CSV~~



03

第三部分:Arcmap中把交通态势转为道路矢量


既然我们拿到了CSV数据,那我们就可以在gis软件里面导入了,在Arcmap中,我们选择 文件->添加数据->添加XY数据,即可选择字段,添加成为点:



坐标系可以选择wgs84,x字段选择经度,y字段选择维度,即可生成点:




接下来就可以通过交通态势、车速等字段进行符号可视化表达了:



在此基础上,把点文件导出为SHP文件,接下来我们使用“点集转线”工具:




线字段选择编号,排序字段选择FID,即可生成道路矢量数据:



我们也可以加上底图,做一些效果:



按照车速进行观测点与路段属性显示


这样,我们就获取了一个矢量道路数据集,且与车速、交通态势相关联,更多效果和数据应用就靠大家继续去探索了~


04

第四部分:拓展分析,破除区域范围限制


说到这里,大家回过头来看看这个API的说明文件:


https://restapi.amap.com/v3/traffic/status/rectangle?参数



工具中使用的是矩形区域交通态势,也就是需要构建一个链接,输入key、level、extensions、retangle等,其中最重要的是输入左下角、右上角的坐标


https://restapi.amap.com/v3/traffic/status/rectangle?key=xxx&extensions=all&rectangle=116.351147,39.966309;116.357134,39.968727


之所以上面的工具让输入的是中心点坐标,是因为这个API规定了只能获得对角线一定范围内的数据,过大则无法获取,所以工具做成了中心点获取。如果上述工具可以一次性获取九宫格相邻地区的数据,相信能解决更大问题,且看后续更新。


如何获取全量数据呢?方法有很多,一种是采用Python编程的方式进行获取,另一种也可以使用FME进行获取,其思路比较相似,都是对城市或者大区域进行网格划分


网格示意,对角线小于10公里


保证每个渔网面对角线小于10公里,这样就可以循环获取每个方格网的数据,然后进行去重,即可得到所有大区域的交通态势。


以上就是本次分享的全部内容,更多经验交流、数据分享、数据讨论,欢迎加入城市数据学社,每日学习,共同进步~


参考文献:

[1] Python爬取高德API实时交通态势数据

[2] 利用FME实现城市高德路况抓取及增量更新




注:欢迎加入城市数据学社知识星球,一起探讨城市数据与应用,一起分享学习数据技能。城市数据学社关注GIS、Python、大数据、新技术等领域,近期加入即赠送Excel分析插件Datamap最新版(一年使用权限),长按以下二维码识别可以加入。


城市数据人读者交流QQ群:369066381,入群口令:城市数据人







欢迎光临 (http://bbs.caup.net/) Powered by Discuz! X3.2