2020-12-16 19:45:38 版本 : 离线路径规划服务Graphhopper
作者: 朱鹏程 于 2020年12月16日 发布在分类 / 人防组 / 人防后端 下,并于 2020年12月16日 编辑
 历史版本

修改日期 修改人 备注
2022-05-23 15:50:26[当前版本] 朱鹏程 格式调整
2020-12-16 19:47:25 朱鹏程 格式调整
2020-12-16 19:45:38 朱鹏程 格式调整
2020-12-16 19:42:33 朱鹏程 格式调整

离线路径规划服务Graphhopper

本文主要探索使用Graphhopper搭建离线路径规划服务,需要掌握一定的JAVA基础环境配置的知识


前言

在外网环境中可以使用百度、高德等第三方的sdk用以实现路径规划的功能,由于项目的需要,在离线环境中需要使用路径规划功能


一、Graphhopper是什么?

Graphhopper 是基于JAVA开发的,使用OpenStreetMap为基础数据源的路线规划服务。

二、使用步骤

1.下载Graphhopper

在github上直接下载:Graphhopper


下载完成后直接解压至指定目录下,目录如图所示

在这里插入图片描述

2.从OpenStreetMap下载路图数据

路图的地址:OpenStreetMap Data Extracts

在这里插入图片描述
下载.pdf文件,如下图所示下载的是国内的路图。
在这里插入图片描述

3.安装Graphhopper所需环境

JAVA环境的搭建在此就不赘述了,自行百度解决即可。
Graphhopper的新版本还需要Meven的环境,并配置环境变量,如果没有安装会自动下载至当前目录如图所示:
在这里插入图片描述
下载完成配置一下meven的环境变量即可。

4.修改配置

在这里插入图片描述
打开文件后可配置服务绑定的ip以及端口等
在这里插入图片描述

5.启动Graphhopper

#先进入到graphhopper目录下,再执行以下语句 ./graphhopper.sh -a web -i china-latest.osm.pbf #china-latest.osm.pdf是下载的路图 

如果报以下错误

-bash: ./graphhopper.sh: /bin/bash^M: bad interpreter: No such file or directory

可以尝试使用以下方式进行解决

sed -i 's/\r$//' ./graphhopper.sh #解决linux 跟Windows 对于换行符不同的区别 

如果不成功可能是因为解析的地图数据过大导致内存溢出发生错误:
可以在执行启动之前先扩大内存

export JAVA_OPTS="-Xmx4g -Xms4g"#加大至4G内存

总结

Graphhopper整个使用的过程也并不复杂,只需要细心配置即可。
路径规划及导航的精度主要还是来自与路图数据的精确度,OpenStreetMap上对于国内的路线信息还是比较落后的,建议可以从别的地方获取最新的更为精准是数据源,再转成Graphhopper所需要是数据格式再使用效果会更好。
Graphhopper还有其它很不错的功能也值得我们去探索



 附件

附件类型

PNGPNG

历史版本-目录  [回到顶端]
    知识分享平台 -V 4.8.7 -wcp