今天的课程将给大家实现通过经纬度返回道路名称、所属街道区域等信息的功能。为大家实现交通模型的快速构建。
为什么会提出这个问题呢?
具体是以下三种场景让我产生的这个需求:
1、做交通影响评价的时候要输出周边道路等级、道路名称等信息时手动添加容易出错。
2、在进行大范围路网模型搭建时目前设计院、学生通常还是手动添加道路信息字段。
3、即使使用了openstreetmap工作获取道路网信息,但由于国内路网更新不及时往往会缺失很多道路名称字段,尤其是一些县级市。
4、使用arcscan进行矢量化城市道路网络模型后字段缺失等问题
那具体怎么操作呢?
今天我带大家来实际操作一下。
一、原理介绍
百度地图有一个地理逆编码功能,什么是地理逆编码呢?其实和我们之前讲的poi查询类似,逆编码操作可以将坐标点(经纬度)转换为对应位置信息(如所在行政区划,周边地标点分布,道路名称)功能。
文档说明链接:https://lbsyun.baidu.com/faq/api?title=webapi/guide/webservice-geocoding-abroad-base
百度经纬度获取链接:http://jingweidu.757dy.com/
二、实际操作
知道了有这个功能就开始观察请求参数:
正好有一个我们需要的入参:
那么我们就可以测试一下看看效果:
我们上来就上难度,选取这样一个点,
这个点位于深圳市福田区彩田路-莲花路交叉口附近,但是放大后我们可以看到如果这里有个点还是应该给属性标签写为‘莲花路’的。
这里我就直接使用我之前就写好的代码进行测试:(该坐标点经纬度为:114.072529,22.562457)
Ps(我把自己的key隐藏了)
我们可以看到结果里不光有所有街道,在road字段里还有路名
因此我们只需要对她进行数据解码即可
最终单条数据可处理成这个样子:
看起来已经很完美了,只要你有一些python编程的知识就能很轻松地把他写成循环然后批量导出:
这样是不是炸一看还挺炸的!
至于为什么我后面有一个ID字段呢?
因为我们毕竟是需要将数据放到gis里面进行可视化,因此在我们导出gis的时候可以加一个id字段传入给字段,然后一起写入输出文件,这样就可以直接在gis里面进行表连接了。
那么gis操作有没有什么知识点呢?
三、arcigs操作要点
这是我在osm上下载的一个路网文件,但是由于这个地点比较偏所有没有道路名称属性字段:
那么我们怎么操作呢?
可以使用要素折点转点工具:
如果不需要进行我下面结果这种显示道路拥堵状态的话就用这种密度的折点就可以,如果你想要呈现交通状态则需要在要素折点转点前使用在折点处分割线工具,让导出的要素点变多,然后再进行上述逆编码操作。
当你进行完后上述操作进行列表关联后可视化即可完成模型搭建或者路网建模。
这样的话生成的要素点既能覆盖每条线路又能搭配上id字段或者osmid字段进行后续的表连接。
另外逆编码操作还可用于事故事件定位、日常现场踏勘等等一系列操作。
代码文后自取
下期将给大家讲述几种好用的路网、公交线网的模型搭建以及拓扑处理。
希望大家多多支持,有能力的可以打赏支持一下up主,学生有能力也不要支持,谢谢大家!
关注我的B站账号: