快速部署Graphhopper实现离线地图路径规划功能

前情提要:

去年的时候做了一个结合本地地图服务的CVRP项目。但是该服务需要配置本地环境,工作量极大,耗时很长。

今天带来的方法借助docker可以快速部署地图服务,节约90%的时间。

该方法需要借助Docker实现,所需需要提前安装好Docker。关于Docker的安装可以参考我的其他教程。

还需要提前下载好地图文件。可以去https://www.openstreetmap.org/下载。

最终实现效果如下:

在这里插入图片描述

#1. 通过Docker hub拉取镜像

打开命令行工具(例如,终端、命令提示符或PowerShell),然后运行以下命令来从Docker Hub拉取israelhikingmap/graphhopper镜像:

docker pull israelhikingmap/graphhopper:latest

2. 运行Docker

在下载好地图数据后可以进行该操作。例如,我的地图数据存储在"D:\open_street_map\china-latest.osm.pbf"

docker run -p 8989:8989 -v D:\/open_street_map:/graphhopper/mapdata  israelhikingmap/graphhopper --input mapdata/china-latest.osm.pbf --host 0.0.0.0

3. 内存溢出问题

因为地图数据很大,所以可能出现内存相关报错。这时可以多分配一些内存。加上-e JAVA_OPTS="-Xmx4g -Xms4g"即可。

使用本地地图服务

经过上述步骤之后,本地服务即可成功运行。打开浏览器地址栏输入‘http://localhost:8989/maps/?profile=car)’后即可使用该服务。

有了这样的一个本地服务之后,有哪些玩法呢?

TSP项目

可以做一个本地的旅游路线规划求解器。通过这样一个函数即可获取两点之间的实际路径距离。

def lanlon_to_distance(lat1,lon1,lat2,lon2):
    """
    将经纬度传入本地服务器,根据路网数据,在本地进行路径规划,返回两点之间的路径距离以及时间
    
    Args:
        lat1 (float): 地点1纬度
        lon1 (float): 地点
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TUUG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值