wordpress仿站模板制作教程,wordpress 网站 seo,贵州百度seo整站优化,浙江纸巾包装设计公司一. Valhalla基本概念
1. 背景介绍#xff1a;
官网介绍文档#xff1a;https://valhalla.github.io/valhalla/
Valhalla是一个开源的路由引擎#xff0c;能够实现实时路径规划#xff0c;处理大量请求返回最优路径。 基于 OSM 数据#xff0c;结合灵活的多模式交通方式…一. Valhalla基本概念
1. 背景介绍
官网介绍文档https://valhalla.github.io/valhalla/
Valhalla是一个开源的路由引擎能够实现实时路径规划处理大量请求返回最优路径。 基于 OSM 数据结合灵活的多模式交通方式、启发式算法和自定义的费用模型为用户提供高效的路径规划服务。 OSM地图可以参考博文OpenStreetMap开放街道地图(OSM)介绍
导航道路计算功能是由 Mapzen 开发的特别是该公司团队中的工程师们专门为开源项目 Valhalla 构建了这一部分功能。在 Mapzen 于 2018 年关闭后Mapbox 开始接管了 Valhalla 项目Valhalla 作为一个开源项目仍然接受社区的贡献和开发。Mapbox 的 Directions API 底层使用的就是 Valhalla。
Mapbox详细介绍可以参考 mapbox详细介绍
2. 路径规划
Valhalla 支持多种交通方式的路径规划包括步行walking、自行车bicycling、驾车driving、公共交通transit。能够整合实时交通信息调整路径规划结果以避开拥堵路段从而提供更加动态的路线选择。
Valhalla 将 OSM 数据分割成小块称为 tiles然后构建路网图。这些 tiles 包含了路网拓扑结构以及其他与路径规划相关的信息比如道路类型、限速、交通流向等。
3. 路由算法
路由算法基于 Dijkstra 算法 和 A 启发式搜索算法* 的变种来计算最短路径A* 算法结合了距离和启发函数通常是目的地的直线距离来更高效地找到从起点到终点的最优路径。
二. 本文功能点以及效果图
1. 使用Docker部署Valhalla服务进行调用 2. 运行可视化Demos展示路径规划效果 3.QGIS中安装Valhalla插件
在QGIS中能够搜索到Valhalla插件进行使用主要包括以下两个步骤
3.1 安装Valhalla插件 3.2 使用路径规划 三. 部署展示路径规划详细步骤
1.准备服务器和数据
1.1 服务器
准备ubuntu机器
1.2 下载OSM数据
https://download.geofabrik.de/asia/japan.html 本例采用的Example为: kansai-latest.osm.pbf (日本关西数据)
2. 安装部署
2.1 安装docker
在 Ubuntu 上安装 Docker大致步骤如下
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null
sudo apt-get update
sudo apt-get install docker-ce
sudo systemctl start docker
2.2 安装Valhalla环境配置、启动服务
cd xxx/ kansai-latest.osm.pbf所在目录
docker pull ghcr.io/valhalla/valhalla:latest
docker run -it -v pwd:/work -p 8002:8002 ghcr.io/valhalla/valhalla:latest
ls -l /work
cd /work/
mkdir valhalla_tiles
valhalla_build_config --mjolnir-tile-dir ${PWD}/valhalla_tiles --mjolnir-tile-extract ${PWD}/valhalla_tiles.tar --mjolnir-timezone ${PWD}/valhalla_tiles/timezones.sqlite --mjolnir-admin ${PWD}/valhalla_tiles/admins.sqlite valhalla.json
valhalla_build_tiles -c valhalla.json kansai-latest.osm.pbf 需要30分钟左右
du -d1 -h ./valhalla_tiles/
find valhalla_tiles | sort -n | tar cf valhalla_tiles.tar --no-recursion -T -
ls -l valhalla_tiles.tar
export LD_LIBRARY_PATH$LD_LIBRARY_PATH:/usr/local/lib/
valhalla_service valhalla.json 12.3 效果展示
上述即完成了部署工作可以调用对应接口进行返回路径规划信息。
Request:
$ curl http://xxx:8002/route --data ‘{“locations”:[{“lat”:34.98597,“lon”:135.75795},{“lat”:35.00373,“lon”:135.76928}],“costing”:“auto”,“directions_options”:{“units”:“kilometers”}, “language”: “ja-JP”}’ | jq ‘.’
Response 3.valhalla demo程序
以上主要是将valhalla部署在服务器上并且调用接口查看效果如果想要通过查看可视化直观展示效果可以使用下列demo进行运行展示。
3.1 Git地址
https://github.com/valhalla/demos
3.2 代码修改、运行
1demos\routing\index-internal.html文件中替换localhost为 部署ubuntu机器IP 2运行demos\routing\index-internal.html文件
3.3 运行效果
选择两个坐标点即可显示对应路径规划信息并且返回对应路径规划数据。
四.总结
Valhalla是一个开源的路由引擎。本文主要对Valhalla进行了简单介绍然后详细介绍了使用Docker容器中部署Valhalla服务调用和具体展示的Demo以及在QGIS中使用valhalla插件路径规划示例。对于有路径规划导航相关需求的开发人员Valhalla是一个很不错的选择。