16.3. 使用 runLocally.sh 脚本在本地运行 OptaWeb Vehicle Routing
Linux 用户可以使用 runLocally.sh Bash 脚本来运行 OptaWeb Vehicle Routing。
runLocally.sh 脚本不会在 macOS 上运行。如果您无法使用 runLocally.sh 脚本,请参阅 第 16.4 节 “手动配置并运行 OptaWeb Vehicle Routing”。
runLocally.sh 脚本会自动执行以下设置步骤,否则必须手动执行:
- 创建数据目录。
- 从 Geofabrik 下载所选 OpenStreetMap (OSM)文件。
- 尝试自动将国家代码与每个下载的 OSM 文件关联。
- 如果 standalone JAR 文件不存在,构建项目。
- 通过取单个区域参数或以交互方式选择区域,启动 OptaWeb Vehicle Routing。
有关执行 runLocally.sh 脚本的说明,请参见以下部分:
16.3.1. 在快速启动模式下运行 OptaWeb Vehicle Routing runLocally.sh 脚本
使用 OptaWeb Vehicle Routing 开始的最简单方法是在没有任何参数的情况下运行 runLocally.sh 脚本。
先决条件
- OptaWeb Vehicle Routing 已成功使用 Maven 构建,如 第 16.2 节 “下载并构建 OptaWeb Vehicle Routing 部署文件” 所述。
- 可通过互联网访问。
流程
在
rhdm-7.12.0-kogito-and-optaplanner-quickstarts/optaweb-8.11.1.Final-redhat-00006/optaweb-vehicle-routing目录中输入以下命令。./runLocally.sh
-
如果提示您创建
.optaweb-vehicle-routing目录,请输入y。在第一次运行脚本时,系统会提示您创建此目录。 如果系统提示您下载 OSM 文件,请输入
y。您第一次运行脚本 OptaWeb Vehicle Routing 会下载 Belgium OSM 文件。应用程序在下载 OSM 文件后启动。
要打开 OptaWeb Vehicle Routing 用户界面,在网页浏览器中输入以下 URL:
http://localhost:8080
第一次运行脚本时,将需要几分钟才能启动,因为 OSM 文件必须由 GraphHopper 导入,并存储为 road 网络图。下次运行 runlocally.sh 脚本时,加载时间会显著提高。
16.3.2. 以交互模式运行 OptaWeb Vehicle Routing runLocally.sh 脚本
使用交互模式查看分配给每个区域的下载 OSM 文件和国家代码的列表。您可以使用交互模式从 Geofabrik 下载额外的 OSM 文件,而无需访问网站并选择下载目的地。
先决条件
- OptaWeb Vehicle Routing 已成功使用 Maven 构建,如 第 16.2 节 “下载并构建 OptaWeb Vehicle Routing 部署文件” 所述。
- 可通过互联网访问。
流程
-
将目录更改为
rhdm-7.12.0-kogito-and-optaplanner-quickstarts/optaweb-8.11.1.Final-redhat-00006/optaweb-vehicle-routing。 输入以下命令以互动模式运行脚本:
./runLocally.sh -i
-
在您选择的提示符处,输入d以显示下载菜单。之前下载的区域列表后跟您可以下载的区域列表。 可选:从之前下载的区域列表中选择区域:
- 在下载的区域列表中,输入与地区关联的数字。
- 按 Enter 键。
可选:下载区域:
-
输入与您要下载的区域关联的数字。例如,要选择欧洲地图,请输入
5。 -
要下载映射,请输入
d,然后按 Enter 键。 要在映射中下载特定区域,请输入
e,然后输入与您要下载的区域关联的数字,然后按 Enter 键。使用大型 OSM 文件为获得最佳用户体验,请使用较小的区域,如欧洲或美国状态。使用大于 1 GB 的 OSM 文件将需要大量的 RAM 大小,并花费大量时间(最多几个小时)进行初始处理。
应用程序在下载 OSM 文件后启动。
-
输入与您要下载的区域关联的数字。例如,要选择欧洲地图,请输入
要打开 OptaWeb Vehicle Routing 用户界面,在网页浏览器中输入以下 URL:
http://localhost:8080
16.3.3. 在非互动模式下运行 OptaWeb Vehicle Routing runLocally.sh 脚本
在非交互模式中使用 OptaWeb Vehicle Routing,通过包含您之前下载的 OSM 文件的单个命令启动 OptaWeb Vehicle Routing。这在您要快速或进行演示时快速切换时,这非常有用。
先决条件
- OptaWeb Vehicle Routing 已成功使用 Maven 构建,如 第 16.2 节 “下载并构建 OptaWeb Vehicle Routing 部署文件” 所述。
- 要使用的区域的 OSM 文件已下载。有关下载 OSM 文件的详情,请参考 第 16.3.2 节 “以交互模式运行 OptaWeb Vehicle Routing runLocally.sh 脚本”。
- 可通过互联网访问。
流程
-
将目录更改为
rhdm-7.12.0-kogito-and-optaplanner-quickstarts/optaweb-8.11.1.Final-redhat-00006/optaweb-vehicle-routing。 执行以下命令,其中 <
;OSM_FILE_NAME> 是您之前下载的 OSM 文件:./runLocally.sh <OSM_FILE_NAME>
16.3.4. 更新数据目录
如果要使用不同的数据目录,您可以更新 OptaWeb Vehicle Routing 使用的数据目录。默认数据目录为 $HOME/.optaweb-vehicle-routing。
先决条件
- OptaWeb Vehicle Routing 已成功使用 Maven 构建,如 第 16.2 节 “下载并构建 OptaWeb Vehicle Routing 部署文件” 所述。
流程
-
要使用不同的数据目录,请将目录的绝对路径添加到当前数据目录中的
.DATA_DIR_LAST文件。 要更改与区域关联的国家代码,请在当前数据目录中编辑
country_codes目录中相应的文件。例如,如果您下载了 Scotland 的 OSM 文件,并且脚本无法猜测国家代码,请将
country_codes/scotland-latest的内容设置为 GB。-
要删除区域,请从数据目录中的
openstreetmap目录中删除对应的 OSM 文件,并删除graphhopper目录中的区域目录。