利用OpenStreetMap在线进行路径规划 您所在的位置:网站首页 百度地图离线能用吗 利用OpenStreetMap在线进行路径规划

利用OpenStreetMap在线进行路径规划

2023-03-16 15:56| 来源: 网络整理| 查看: 265

路网上的最短路径计算

有路网与停靠点数据时,如果需要计算最短路径,ArcGIS是一个常用的选择。但由于shapefile路网中方向、速度、交叉口转向等信息难以准确获取,想要在ArcGIS中获得精确的路径信息,只能作为路径的粗略估计。 近十年来,高德、百度开放平台的路径规划API成为对精确度比较高的路径规划手段。但高德、百度的API次数比较有限。个人用户一天只能调用5000次高德骑行规划API。

一般的基于OSM的离线路径规划手段

不联网就能做OSM做最短路径规划的库有很多,比如osmnx、pyrouting等。这些库的共同特点是,从OSM上下载路网数据后在本地计算。但研究范围比较大的时候,数据量会成为计算的一大障碍。

用OSM路径规划接口做路径规划

在OSM平台上可以进行路径规划,出行方式包括步行、驾车及骑行。每种出行方式都提供了三种求解手段。三种手段基于不同的求解引擎,给出的结果略有差别。 在这里插入图片描述 OSM没有提供专门的路径规划API服务。但开放开源的OSM在线路径规划的url暴露在外。即,在OSM上做路径规划,用F12的网络功能可以找到路径服务的url。 以OSMR为例(瓦尔哈拉和graphhopper引擎的url在f12里也可以找到): 步行

routing.openstreetmap.de/routed-foot/route/v1/driving/

驾车

routing.openstreetmap.de/routed-car/route/v1/driving/

骑行

routing.openstreetmap.de/routed-bike/route/v1/driving/

在这些的url的基础上添加参数,即可实现调用osmapi进行路径规划。将得到的结果解析为geojson,然后使用fiona等库保存即可。下面给出爬虫核心代码,内容不多。

import requests start = '113.9256,22.536' end = '114.0545,22.5446' base_url = f'routing.openstreetmap.de/routed-car/route/v1/driving/{start};{end}' params = { 'overview':'false', 'geometries':'polyline' 'steps':'true' } response = requests.get(base_url, params = params) res_json = response.json() ### 从res_json中读取坐标信息并保存,具体代码略 ### 从res_json中读取坐标信息并保存,具体代码略 ### 从res_json中读取坐标信息并保存,具体代码略


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有