快速部署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): 地点
Vue项目实现百度离线地图开发,可以按照以下步骤进行: 1. 下载百度地图离线包 首先需要下载百度地图离线包,可以在百度地图开放平台上下载。下载后将离线包解压到项目的static目录下。 2. 引入百度地图API 在Vue项目中,可以在index.html中引入百度地图API的JS文件: ``` <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的AK"></script> ``` 其中,AK是在百度地图开放平台申请的API Key。 3. 初始化地图 在Vue项目中,可以在mounted()函数中初始化地图: ``` mounted() { let map = new BMap.Map("mapContainer"); // 创建地图实例 map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); // 初始化地图,设置中心点坐标和地图级别 map.enableScrollWheelZoom(true); // 启用滚轮放大缩小 map.addControl(new BMap.NavigationControl()); // 添加平移缩放控件 map.addControl(new BMap.ScaleControl()); // 添加比例尺控件 map.addControl(new BMap.OverviewMapControl()); // 添加缩略地图控件 } ``` 4. 加载离线地图 在初始化地图之后,可以通过设置地图的样式来加载离线地图: ``` map.setMapStyle({styleJson: []}); // 加载离线地图 ``` 其中,styleJson是离线地图的样式json文件,可以在离线包中找到。 5. 打包部署 最后,将Vue项目打包部署到服务器上即可。需要注意的是,由于离线地图文件较大,需要在服务器上配置缓存等策略,以提高地图加载速度。 以上就是Vue项目实现百度离线地图开发的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

TUUG

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

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

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

打赏作者

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

抵扣说明:

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

余额充值