ITADN
abrensch/brouter
abrensch/brouter · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

BRouter

BRouter 是一个可配置的 OSM 离线路由器,支持高程感知,基于 Java + Android。设计为多模式,特别强调自行车 和基于能量的汽车路线规划。

更多信息请参阅 http://brouter.de/brouter.

Android 上的 BRouter

您可以从 F-DroidGoogle Play Store 在您的 Android 设备上安装 BRouter 应用。 您也可以自行 构建 BRouter。您可以在 docs/users/android_quickstart.md 中找到 BRouter Android 应用的详细 文档。

Get it on F-Droid Get it on Google Play

使用 Locus 的 Android

您可以在 Android 设备上使用 BRouter 作为 Locus Map 的离线路由引擎。这是目前 在 Android 设备上使用 BRouter 功能最丰富且维护最完善的解决方案。

关于如何设置此功能的完整文档可在 https://www.locusmap.eu/locus-map-can-navigate-offline/ 获取。

使用 OSMAnd 的 Android

或者,您也可以使用 BRouter 作为 OSMAnd 在您的 Android 设备上的离线路由引擎。

关于如何设置此功能的完整文档可在 docs/users/osmand.md 获取。

Windows/Linux/Mac OS 上的 BRouter

构建和安装

要编译 BRouter Android 应用,必须首先在主文件夹中名为 local.properties 的文件中设置 Android SDK 路径:

sdk.dir=<your/android/sdk/path>

使用 Android 应用构建 BRouter(如果已设置 Android SDK 路径):

./gradlew clean build

在没有 Android 应用的情况下构建 BRouter:

./gradlew clean build -x :brouter-routing-app:build

构建包含所有依赖类的服务器和地图创建器的 JAR 文件:

./gradlew clean build fatJar # places JAR file in brouter-server/build/libs/

构建用于分发的 ZIP 文件,包含 readme、配置文件、APK 和 JAR:

./gradlew distZip # places ZIP file in brouter-server/build/distributions/

获取所需的 segments(数据)文件

路由数据文件以 5*5 度文件的形式组织, 文件名包含该方格的西南角坐标,这意味着:

  • 您想在 West48/North37 附近进行路由 -> 您需要 W50_N35.rd5
  • 您想在 East7/North47 附近进行路由 -> 您需要 E5_N45.rd5

这些在 BRouter 中被称为 "segments" 的数据文件,是从 OpenStreetMap 数据生成的,并存储为自定义的 二进制格式 (rd5),以提高 BRouter 路由的效率。

从 brouter.de 下载

覆盖整个地球的 Segments 文件每周在 https://brouter.de/brouter/segments4/ 生成。

您可以下载一个或多个 segments 文件,覆盖您想要路由的地球区域, 并将其放入 misc/segments4 目录中。

自行生成 segments 文件

您也可以直接从 OpenStreetMap 数据的 planet dump (或 GeoFabrik extract)生成所需的 segments 文件。

关于此操作的更多文档可在 docs/developers/build_segments.md 文件中找到。

(可选)生成 profile 变体

此仓库包含针对多种不同 交通方式的 BRouter profile 示例。其中大多数可以通过设置 profile 文件第一个 global 上下文中的变量轻松进行自定义。

misc/scripts/generate_profile_variants.sh 中提供了一个辅助脚本, 可帮助您快速基于默认 profile 生成变体,以创建 覆盖大多数基本使用情况的默认 profile 集合。

请参阅 docs/developers/profile_developers_guide.md 以获取关于 profile 编辑和自定义的详细指南。

运行 BRouter HTTP 服务器

辅助脚本在 misc/scripts/standalone 中提供,用于快速为各种平台启动 BRouter HTTP 服务器。

  • Linux/Mac OS: ./misc/scripts/standalone/server.sh
  • Windows (使用 Bash): ./misc/scripts/standalone/server.sh
  • Windows (使用 CMD): misc\scripts\standalone\server.cmd

此 HTTP 服务器暴露的 API 端点记录在 brouter-server/src/main/java/btools/server/request/ServerHandler.java 文件中。

服务器在标准输出上为每个路由请求输出日志数据。对于每个路由 请求,会打印一行包含以下八个字段的日志。字段之间 以空白字符分隔。

  • 时间戳,采用 ISO8601 格式,例如 2024-05-14T21:11:26.499+02:00
  • 当前服务器会话计数(1-999 的整数)或在检测到新 IP 地址时为 "new"
  • IP 地址(IPv4 或 IPv6),前缀为 ip=
  • 路由请求的持续时间(毫秒),前缀为 ms=
  • 分隔符 ->
  • HTTP 请求方法
  • HTTP 请求 URL
  • HTTP 请求版本

日志输出示例:

2024-05-14T21:11:26.499+02:00 new ip=127.0.0.1 ms=189 -> GET /brouter?lonlats=13.377485,52.516247%7C13.351221,52.515004&profile=trekking&alternativeidx=0&format=geojson HTTP/1.1
2024-05-14T21:11:33.229+02:00   1 ip=127.0.0.1 ms=65 -> GET /brouter?lonlats=13.377485,52.516247%7C13.351221,52.515004&profile=trekking&alternativeidx=0&format=geojson HTTP/1.1

使用 Docker 的 BRouter

要构建 Docker 镜像,请在(项目顶层目录中)运行:

docker build -t brouter .

按照上一章所述下载分段文件。包含分段文件的文件夹可以挂载到容器中。按如下方式运行 BRouter:

docker run --rm \
  -v ./misc/scripts/segments4:/segments4 \
  -p 17777:17777 \
  --name brouter \
  brouter

这将使用一组默认的路由配置文件启动 brouter。它将在端口 17777 上可访问。

如果您想提供自己的路由配置文件,您也可以挂载包含自定义配置文件的文件夹:

docker run --rm \
  -v ./misc/scripts/segments4:/segments4 \
  -v /path/to/custom/profiles:/profiles2 \
  -p 17777:17777 \
  --name brouter \
  brouter

文档

更多文档可在 docs 文件夹中找到。

相关项目

许可证

BRouter 采用 MIT License 发布。