本文是使用开源的graphhopper路径规划引擎,可执行jar包的方式启动引擎服务,按照官方地址,进行实践记录。
Graphhopper后台服务启动(可执行 JAR 文件)
特别说明:当前graphhopper的版本是9.x,运行GraphHopper web服务需要JVM(>= Java 17),平时使用是JDK8,会有runtime报错,在低版本的Java运行时环境执行了高版本的Java编译过的类文件。
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/graphhopper/application/GraphHopperApplication has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
下载相关资源(jar包、yml配置、地图数据)
官方给出的wget下载方式,下载的太慢了,其实三个文件可以分别单独下载,下面提供两种方式
- 方式1:单独下载
- jar包下载:点击
web service jar
就可以直接下载
- 地图下载:地图下载地址
- config-example.yml下载,直接在浏览器中输入
https://raw.githubusercontent.com/graphhopper/graphhopper/9.x/config-example.yml
把内容粘贴出来
- jar包下载:点击
- 方式2:官方下载
借助wget下载jar包、配置文件yml和地图数据如下命令 - 说明:wget工具在Windows上需要自行下载配置,参考:wget 的安装与使用(Windows)
wget https://repo1.maven.org/maven2/com/graphhopper/graphhopper-web/9.1/graphhopper-web-9.1.jar https://raw.githubusercontent.com/graphhopper/graphhopper/9.x/config-example.ymlAhttp://download.geofabrik.de/europe/germany/berlin-latest.osm.pbf
- 命令说明
- wget命令(wget): wget 是一个命令行工具,用于从网络下载文件。在这里,它用来下载三个文件:
- graphhopper-web-9.1.jar:这是 GraphHopper 的 Web 服务的 JAR 文件,版本号为 9.1。
- config-example.yml:这是 GraphHopper 的配置文件示例,用来配置 GraphHopper 的行为和设置。
- berlin-latest.osm.pbf:这是 OpenStreetMap 的数据文件,包含了柏林地区的地理数据,采用 PBF 格式(Protocolbuffer Binary Format)。
- 运行截图:
执行 GraphHopper 的服务(jar包服务)
- 启动命令:
java -D"dw.graphhopper.datareader.file=berlin-latest.osm.pbf" -jar graphhopper*.jar server config-example.yml
-D"dw.graphhopper.datareader.file=berlin-latest.osm.pbf"
:这是一个 Java 系统属性参数,指定了 GraphHopper 数据读取器要使用的 OSM 文件。在这里,它告诉 GraphHopper 使用刚刚下载的 berlin-latest.osm.pbf 文件作为数据源。-jar graphhopper*.jar
:这告诉 Java 去执行以 graphhopper 开头的 JAR 文件。通常这样写是为了兼容可能存在的不同版本号或后缀的 JAR 文件。server config-example.yml
:这是 GraphHopper 启动的参数,其中 server 表示以服务器模式运行,而 config-example.yml 是配置文件的路径和名称,用来指导 GraphHopper 如何加载地图数据和配置服务。
- 运行结果
当看到带有Server - Started的日志消息时,浏览器输入 http://localhost:8989/,将看到柏林地图