离线路径规划服务Graphhopper

离线路径规划服务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还有其它很不错的功能也值得我们去探索

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值