Advertisement

osm 搭建离线地图_Graphhopper OSM地图路径规划导航 离线搭建教程

阅读量:

GraphHopper是一种高效的Java导航引擎,在内存占用方面表现优异,默认情况下已集成Open Source Map (OSM)和Ground Transit Feed Specification (GTFS)数据源,并可灵活导入其他类型的数据源以满足特定需求。该导航引擎目前提供以下主要算法:基于收缩的层次化方法(Contraction Hierarchies)、最优路径搜索(A*)以及迪杰斯特拉(Dijkstra)算法。

优点:

该算法虽然运算效率略低于Dijkstra方法(即Dijkstra算法),但它确能确保寻找到最短路径(即从起点到目标点的最小距离)。与之相比的最佳优先搜索(BFS)则展现出更快捷的运算速度(即处理问题效率更高),然而其得出的结果(即所寻找到的路径)未必是最优解(即最佳路线)。A算法则巧妙地将启发式方法与传统技术相结合(即综合运用不同策略),展现出极强的竞争优势(即广泛认可并被高度评价)。作为一种灵活多变的方法(即适应性强),A适用于各种复杂场景(即多样化的情形)。该算法具有广泛的应用潜力(即应用范围广),能够深入探索图空间中的较大区域(即覆盖范围大)。与Dijkstra方法相比,在简单问题中其表现同样出色(即效果相当),同样具备较高的效率上限(即可用性高)。与BFS方法相比,则能够借助启发式函数获取更好的解题效果。

2、开源。代码采用开放源代码形式,并支持本地部署服务,在本地环境中进行部署更加便捷和灵活;通过OSM技术实现离线路径导航功能,并提供完整的路径规划解决方案;该系统便于开发者自行构建并扩展服务架构;在后续优化算法方面有较大的改进空间;这一领域具有较大的扩展潜力。

3、效率。相比而言,在使用本地路径规划服务时会比调用远程服务更快捷。相比谷歌地图而言更为迅速,在性能上与OSRM不相上下(针对350公里路径长度的情况而言,平均耗时为0.8秒(范围从0.4秒到1.2秒));

4、成熟度。已存在一些开源版本的成功运用,且有官方网站、论坛等;

5、功能。导航系统的核心能力基于地理数据和算法来规划与导航。该系统具备路径导航能力,并支持中文指引。

开源与商业两个版本划分下展开阐述。本文着重介绍开源版的离线部署流程,在此过程中主要基于源代码进行构建操作,并且整个流程较为便捷

在进行搭建操作前,请确保JDK已经成功安装并配置完毕,并同时需完成环境变量配置设置。网上有很多资源可供参考,请自行测试安装过程以确保一切顺利进行。

2、获取Graphhopper项目中master分支的代码包(具体链接:https://github.com/graphhopper/graphhopper)

17d0af4c74a2c5eec569e60aec5b008c.png

展开文件时,请务必确保不要将文件解压到包含中文路径的地方,因为这可能导致服务无法正常启动的情况。

通过OSM平台获取地理数据文件。例如,在Geofabrik网站上可以下载柏林地区的地理数据文件。

857b19868c6b0f6d8c04de92cbdf84c0.png

下载完成后,将文件放在根目录文件中

3254547dae24da5ff26fba79856b0a8a.png

切换至文件夹后,请运行命令:./graphhopper.sh --web berlin-latest.osm.pbf以启动服务。服务已正常启动,请检查结果。

cfa4de15efecdc482454ce505da4104f.png

以route请求为例,在浏览器中执行输入操作:http://localhost:8989/route?point=52.51834,13.394174\&point=52.421542,13.31665\&type=json\&locale=zH-CN$&vehicle=cAr\$\&weighting=fAseSt$&$points_encoded=false

成功返回结果;

6b6b54d9855b20dbeac6d36880f1ab70.png

6、如果不知道坐标范围,可输入 http://localhost:8989/info显示坐标范围:

全部评论 (0)

还没有任何评论哟~