一步步理清开源路径规划导航引擎GraphHopper
·
一步步理清开源路径规划导航引擎GraphHopper,学习应用

一、GraphHopper简介
- 源码用 Java 编写,开发人员可以通过 Maven 轻松上手。
- 可以用作** Java 库**来计算两个或多个点之间路线的距离、时间、逐向指示和许多道路属性。
- 可以用作独立的 Web 服务器来计算两个或多个点之间路线的距离、时间、逐向指示和许多道路属性。
- 除了“A-B”路线之外,它支持路径规划、移动导航、“捕捉道路”、等时线计算等。
二、功能特性
- 与OpenStreetMap(osm / xml和pbf)一起开箱即用,并且可以适应自定义数据
- OpenStreetMap集成:存储并考虑道路类型,速度限制,路面,障碍物,访问限制,渡轮,有条件访问限制等
- 预构建的路由配置文件:汽车、自行车、赛车、山地自行车、步行、远足、卡车、公共汽车、摩托车…
- 提供强大的 Web API,该 API 公开来自 OpenStreetMap 的数据,并允许根据请求自定义车辆配置文件。使用 JavaScript 和 Java 客户端。
- 提供地图匹配,即“捕捉到道路”。
- 支持瞬态公共交通路线和读取 GTFS。
- 提供超过 45 种语言的转弯说明。
- 可以显示高程数据。
- 支持备用路线。
- 支持周转成本和限制。
- 可以指定自定义区域自定义路径规划行为。
- 从小型室内大小的图形缩放到全球大小的图形。
- 查找街道上最近的点,例如获取高程或“捕捉到道路”或用作空间索引。
- 计算等时线和最短路径树。
- 在浏览器中展示整个路网
- 沿 road_class 或 max_speed 等路线显示“路径详细信息”。
三、应用分类
3.1、Web版
- Java后台服务:可执行jar包或者graphhopper.sh
- JavaScript 的官方 API 客户端:
graphhopper-client.js
3.2、安卓版
3.2.1、在线版
Web服务地址项目:graphhopper
/navigation/(这是个Java项目,暂不确定与可执行Jar相关)可以于可与 Android 导航 SDK【maplibre-navigation-android-legacy 】一起使用(待完善)
3.2.2、离线版
graphhopper/docs/android
/index.md(待完善)
3.2.3、相关APP
3.2.3.1、Pocket Maps:项目源码地址
具有路线功能等的免费离线地图,该项目使用OSM数据、Mapsforge-vtm和Graphhopper开源API。
3.2.3.2、Locus Add-On:
Locus 的开发人员为 locus 创建了一个路由插件,并且对于其他地图应用程序也很有用。该插件的源代码地址:GraphHopper for Locus Map
3.2.3.3、Cruiser App:源码不开源
3.2.4、相关Libraries(FrameWorks)
3.2.4.1、OSMBonusPack:项目地址
介绍
- OSMBonusPack 通过 GraphHopperRoadManager 支持 GraphHopper 路由 API,并为各种提供商提供地图图块集成。
- osmdroid 是一个用于与 Android 应用程序内的 OpenStreetMap 数据进行交互的库。它提供了对 Android 地图对象的几乎完全/免费的替换:MapView、MapController、叠加层(标记、折线、多边形)等。
- “OSMBonusPack”库用(非常)有用的类补充了osmdroid:路线和方向,兴趣点(目录服务),标记聚类,支持 KML 和 GeoJSON 内容,GroundOverlay,类似于其 Google 地图等效物,地理编码与反向地理编码等。
Android引入
- OSMBonusPack 库以 AAR 的形式提供。(两种引入方式①包括使用 JitPack②作为本地库包含)
//包括使用 JitPack repositories { ... maven { url "https://jitpack.io" } } dependencies { ... implementation 'com.github.MKergall:osmbonuspack:6.9.0' }
3.2.4.2、GraphHopper Directions API
介绍
- GraphHopper Directions API Java客户端支持从官方和自定义服务器获取路线和指令。
- GraphHopper Directions API 的 Java 和 Android 客户端的已弃用存储库, 老地址

- 手工制作的版本是 GraphHopper 核心的一部分。 新地址

Android引入
<dependency>
<groupId>com.graphhopper</groupId>
<artifactId>directions-api-client-hc</artifactId>
<version>[CURRENT-VERSION]</version>
</dependency>
示例
示例地址:graphhopper/client-hc/src/test/java/com/graphhopper/api
/Examples.java
3.3、IOS版
暂未研究
四、相关网站
- 官方网站
- 问答平台
- GraphHopper Maps在线体验
- graphhopper_map项目源码使用Typescript语言和React框架
- graphhopper_map项目源码后台服务开源路由引擎(j可执行jar包)或 GraphHopper Directions API(官方在线请求地址)
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)