温馨提示:没有设置星标的小伙伴可能会收不到文章的推送信息,欢迎各位新老朋友给【hello trans】加个星标,以便及时获得最新推文,感谢支持。 本文主要是提供技术路线和思路,使用Python语言,通过高德API接口,来获取路网实时的交通态势。 (一)效果预览 (二)准备工作 (1)高德api key申请 进入高德开放平台,地址为:https://lbs.amap.com/。当然直接使用浏览器进行搜索【高德开放平台】也可以快速进入。首先进入控制台,然后点击管理key。添加一个【web服务】的key即可。 个人用户者,每天免费使用的key额度是有限的,以路径规划为例,每天免费调用量上限为5000。换言之,我们每次构造的OD对不能超过5000个。如果想要调用更多的量可以向高德进行申请。 (2)范围shp文件准备 以arcgis为例,在arcgis中加载好高德的在线地图,然后再右侧目录栏连接到我们的目录(代码所在的根目录)。 然后在该目录下新建一个shp文件。 名称命名为【bounds】,要素选择面,坐标系选择地理坐标系WGS84。 然后,在左侧图层栏,选择bounds图层【开始编辑】。 在新弹出的编辑窗口选择面,然后就可以绘制出范围了。 最后停止停止编辑,保存即可,这一步arcgis的操作比较简单,就不详细展开。 (三)代码演示 要使用路径规划API来获取信息就需要提前构造OD对,通过读取边界范围的最大最小值来生成均匀的点。 构造完OD,就需要使用路径规划API来获取信息。详细的url中的请求参数和返回的信息可以查看官方的开发者文档。 利用python写一个循环,来获取多个od路径。主要思路如下: 这段代码通过高德地图API获取每一对起点(Origin)和终点(Destination)之间的驾车路线信息,并处理请求结果,包括错误处理。具体步骤如下:
然后就是将url返回的信息按照我们的需求提取出来。 最后,可以对结果进行简单的可视化: (四)图形化小程序演示 为了方便使用,对进行了整合,写了一个图形界面的小工具。以下对该工具进行一个简单的介绍: 这是主要界面,一共分为四个步骤,操作的演示视频如下: (五)注意事项说明 (1)首先需要准备边界范围,范围不易过大,可使用Qgis或Acrgis构建一个shp格式的边界。因为高德key每天调用的额度是有限的,只有5000条。 (2)每次爬取可获取当前时刻下实时的交通状态,若需要爬取不同时刻的交通状态,需要手动进行多次爬取操作。 最终结果分别保存为shp、geojson和csv文件,其中csv文件包含以下道路信息: 第一列是道路的名称,第二列是拥堵系数,第三列是交通拥堵状态。 (六)效果展示 可视化预览的最终的效果如下: 这是工作日早上八点,案例片区的交通状态。 然后,我分别爬取了周末和工作日早上七点到晚上七点的交通态势,将每张图片合并成gif格式,如下: ![]() 周末全天拥堵变化 ![]() 工作日全天拥堵变化 我们还可以利用csv中的拥堵系数,进行全天交通态势变化趋势分析。 注意:该小工具无法一次性爬取全天的交通态势变化情况,只能获取当前时刻下的路网交通态势。 (七)较大范围测试 以渝中区为例: 第一步:通过边界范围构造OD对 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|