16.4. 手动配置并运行 OptaWeb Vehicle Routing
运行 OptaWeb Vehicle Routing 的最简单方法是使用 runlocally.sh
脚本。但是,如果系统上没有 Bash,您可以手动完成 runlocally.sh
脚本执行的步骤。
先决条件
- OptaWeb Vehicle Routing 已成功使用 Maven 构建,如 第 16.2 节 “下载并构建 OptaWeb Vehicle Routing 部署文件” 所述。
- 可通过互联网访问。
流程
下载路由数据。
路由引擎需要地理数据来计算在不同位置间传输所需的时间。在运行 OptaWeb Vehicle Routing 前,您必须下载并存储本地文件系统中的 OpenStreetMap (OSM)数据文件。
注意OSM 数据文件通常介于 100 MB 到 1 GB 之间,需要下载,因此在构建或启动 OptaWeb Vehicle Routing 应用程序前下载文件是一个好主意。
-
在 Web 浏览器中打开
http://download.geofabrik.de/
。 - 单击 Sub Region 列表中的区域,如 Europe。此时会打开 subregion 页面。
-
在 Sub Regions 表中,下载国家的 OSM 文件(
.osm.pbf
),如 Belgium。
-
在 Web 浏览器中打开
创建数据目录结构。
OptaWeb Vehicle Routing 在文件系统中读取和写入几种类型的数据。它从
openstreetmap
目录中读取 OSM (OpenStreetMap)文件,将 road 网络图写入graphhopper
目录,并将用户数据保存在名为db
的目录中。创建一个用于存储所有这些数据的新目录,以便更轻松地升级到未来 OptaWeb Vehicle 路由的新版本,并继续使用您之前创建的数据。-
创建
$HOME/.optaweb-vehicle-routing
目录。 在
$HOME/.optaweb-vehicle-routing
目录中创建openstreetmap
目录:$HOME/.optaweb-vehicle-routing └── openstreetmap
$HOME/.optaweb-vehicle-routing └── openstreetmap
Copy to Clipboard Copied! 将所有下载的 OSM 文件(带有扩展名
.osm.pbf
的文件)移到openstreetmap
目录中。其余的目录结构由 OptaWeb Vehicle Routing 应用程序首次运行时创建。之后,您的目录结构类似以下示例:
$HOME/.optaweb-vehicle-routing ├── db │ └── vrp.mv.db ├── graphhopper │ └── belgium-latest └── openstreetmap └── belgium-latest.osm.pbf
$HOME/.optaweb-vehicle-routing ├── db │ └── vrp.mv.db ├── graphhopper │ └── belgium-latest └── openstreetmap └── belgium-latest.osm.pbf
Copy to Clipboard Copied!
-
创建
-
将目录改为
rhdm-7.12.0-kogito-and-optaplanner-quickstarts/optaweb-8.11.1.Final-redhat-00006/optaweb-vehicle-routing/optaweb-vehicle-routing-standalone/target
。 要运行 OptaWeb Vehicle Routing,请输入以下命令:
java \ -Dapp.demo.data-set-dir=$HOME/.optaweb-vehicle-routing/dataset \ -Dapp.persistence.h2-dir=$HOME/.optaweb-vehicle-routing/db \ -Dapp.routing.gh-dir=$HOME/.optaweb-vehicle-routing/graphhopper \ -Dapp.routing.osm-dir=$HOME/.optaweb-vehicle-routing/openstreetmap \ -Dapp.routing.osm-file=<OSM_FILE_NAME> \ -Dapp.region.country-codes=<COUNTRY_CODE_LIST> \ -jar quarkus-app/quarkus-run.jar
java \ -Dapp.demo.data-set-dir=$HOME/.optaweb-vehicle-routing/dataset \ -Dapp.persistence.h2-dir=$HOME/.optaweb-vehicle-routing/db \ -Dapp.routing.gh-dir=$HOME/.optaweb-vehicle-routing/graphhopper \ -Dapp.routing.osm-dir=$HOME/.optaweb-vehicle-routing/openstreetmap \ -Dapp.routing.osm-file=<OSM_FILE_NAME> \ -Dapp.region.country-codes=<COUNTRY_CODE_LIST> \ -jar quarkus-app/quarkus-run.jar
Copy to Clipboard Copied! 在这个命令中,替换以下变量:
-
<OSM_FILE_NAME
> :要使用的区域的 OSM 文件,以及您之前下载的区域 <COUNTRY_CODE_LIST
> :用于过滤 geosearch 查询的国家代码的逗号分隔列表。有关国家代码列表,请参阅 ISO 3166 国家代码。应用程序在下载 OSM 文件后启动。
在以下示例中,OptaWeb Vehicle Routing 下载中央美的 OSM 映射(
central-america-latest.osm.pbf
),并在国家/地区(BZ)和 Guatemala (GT)中搜索。java \ -Dapp.demo.data-set-dir=$HOME/.optaweb-vehicle-routing/dataset \ -Dapp.persistence.h2-dir=$HOME/.optaweb-vehicle-routing/db \ -Dapp.routing.gh-dir=$HOME/.optaweb-vehicle-routing/graphhopper \ -Dapp.routing.osm-dir=$HOME/.optaweb-vehicle-routing/openstreetmap \ -Dapp.routing.osm-file=entral-america-latest.osm.pbf \ -Dapp.region.country-codes=BZ,GT \ -jar quarkus-app/quarkus-run.jar
java \ -Dapp.demo.data-set-dir=$HOME/.optaweb-vehicle-routing/dataset \ -Dapp.persistence.h2-dir=$HOME/.optaweb-vehicle-routing/db \ -Dapp.routing.gh-dir=$HOME/.optaweb-vehicle-routing/graphhopper \ -Dapp.routing.osm-dir=$HOME/.optaweb-vehicle-routing/openstreetmap \ -Dapp.routing.osm-file=entral-america-latest.osm.pbf \ -Dapp.region.country-codes=BZ,GT \ -jar quarkus-app/quarkus-run.jar
Copy to Clipboard Copied!
-
要打开 OptaWeb Vehicle Routing 用户界面,在网页浏览器中输入以下 URL:
http://localhost:8080
http://localhost:8080
Copy to Clipboard Copied!