Valhalla:基于 OpenStreetMap 的开源路线引擎
Valhalla:基于 OpenStreetMap 的开源路线引擎
Valhalla 是一个开源的路由引擎和配套工具库,基于 OpenStreetMap 数据提供路线规划服务。

项目在 GitHub 上获得了 5,800+ Star,采用 MIT 协议。
Valhalla 支持的功能包括:路线规划、时间距离矩阵计算、等时圈分析、高程采样、地图匹配和旅行商优化。它能够在同一路线中混合使用汽车、步行、自行车和公共交通,也支持设定到达时间约束。

核心设计
Valhalla 采用分层瓦片数据结构,内存占用小,支持离线路由,可以做区域数据提取和增量更新。图中的边和节点支持运行时动态计费,通过插件架构实现自定义和备选路线生成。
整个引擎用 C++ 编写,可以交叉编译到离线便携设备上运行。导航语音和转弯指令的生成同样采用插件架构,能够针对不同地区和语言做定制。
模块组成
项目由多个库模块构成:Midgard 提供基础地理和几何算法;Baldr 负责瓦片路由数据的访问和缓存;Sif 用于图节点和边的计费;Mjolnir 将开放数据转为 Valhalla 图瓦片;Loki 搜索图瓦片并将输入位置关联到图实体;Thor 在图瓦片层级中生成路径;Odin 根据路径生成导航指令;Tyr 处理 HTTP 请求并格式化输出;Meili 负责地图匹配;Skadi 提供高程数据访问。
安装方式
Valhalla 提供多种安装途径。Docker 部署最简单:
docker build -t valhalla:latest .
也可以通过 Python 绑定安装,pip 安装后直接使用命令行工具:
pip install pyvalhalla
python -m valhalla valhalla_build_tiles -h
NodeJS 用户:
npm install @valhallajs/valhallajs
需要从源码编译的话,参考项目文档中的构建指南。
演示服务器
FOSSGIS 提供了公开的演示服务器,包含完整的全球图数据和配套 Web 应用,可以直接在线体验路线规划和等时圈等功能。
跨平台支持
Valhalla 在多数 Linux 和 macOS 发行版上完整可用,也支持 iOS 和 Android。Windows 上可以完成库的构建和部分模块的使用,包括命令行工具、数据工具和 Python 绑定。
d。Windows 上可以完成库的构建和部分模块的使用,包括命令行工具、数据工具和 Python 绑定。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)