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