Graphhopper - 如何设置路由配置文件 'foot'

标签 graphhopper

如何设置路线配置文件“foot”?使用默认配置文件“汽车”,我无法计算任何位置(在树林中)与附近人行道之间的距离。

我收到的错误消息是:

> Encoding does not match: Graphhopper config:
> foot|speed_factor=1.0|speed_bits=4|turn_costs=false|version=5 Graph:
> car|speed_factor=5.0|speed_bits=5|turn_costs=false|version=2 Change
> configuration to match the graph or delete ...
> gelederland-latest.osm-gh/

我的代码是:

graphHopper = new GraphHopper().forMobile();
EncodingManager encodingManager = EncodingManager.create( FlagEncoderFactory.FOOT);
graphHopper.setEncodingManager(encodingManager);
graphHopper.setProfiles(Arrays.asList( new ProfileConfig("my_foot").setVehicle("foot").setWeighting("fastest")));
graphHopper.load(getRoutingDataFolder());

我使用的路由数据?首先,我通过 http://download.geofabrik.de/europe/netherlands/gelderland.html 检索原始 OSM 文件。之后我通过命令准备了 Graphhopper 路由数据:

./graphhopper.sh -a import -i gelderland-latest.osm.pbf

更新:这足够了吗?我正在尝试:

./graphhopper.sh -a import -p foot,bike,car -i netherlands-latest.osm.pbf  

最佳答案

问题是图表(即 graphhopper 生成的路由文件)与应用程序中的配置设置不一致。

在下面的答案中,我希望拥有一个适用于步行、自行车和汽车的路由设施。当然,可以只获取一种类型“车辆”的路线。我也针对路由配置文件“foot”进行了测试。

为了实现这种对齐,我首先在 graphhopper project 的克隆中编辑了 config.yml 文件。 。在我更改的配置文件中:

graph.flag_encoders: foot,bike,car

和:

profiles:
  - name: foot
    vehicle: foot
    weighting: fastest

profiles_ch:
  - profile: foot

我使用以下命令生成了图形数据:

./graphhopper.sh -a import -p foot,bike,car -i netherlands-latest.osm.pbf  

然后,使用相同的配置文件配置您的应用程序非常重要。因此,即使在应用程序中仅使用“脚”配置文件也会导致不匹配 - 正如错误消息所示。

该应用程序包含以下代码,用于测量任意点到路径的距离:

graphHopper = new GraphHopper().forMobile();
EncodingManager encodingManager = EncodingManager.create( FlagEncoderFactory.FOOT + "," + FlagEncoderFactory.BIKE + "," + FlagEncoderFactory.CAR);
graphHopper.setEncodingManager(encodingManager);
graphHopper.setProfiles(Arrays.asList(
        new ProfileConfig("my_foot").setVehicle("foot").setWeighting("fastest"),
        new ProfileConfig("my_bike").setVehicle("bike").setWeighting("fastest"),
        new ProfileConfig("my_car").setVehicle("car").setWeighting("fastest")));
graphHopper.load(routingDataFolder);

关于Graphhopper - 如何设置路由配置文件 'foot',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61230460/

相关文章:

java - 使用 GraphHopper 和 jsprit 构建矩阵

android - Graphhopper 行人路线 android

android - Graphhopper 替代路线 Android

android - 在 OSM map 上实现离线路由

android - 在graphhopper中封锁某些道路

java - GraphHopper:将多个 OSM 文件加载到自托管服务器

java - 使用 GraphHopper 查找路线上的点

android - Graphhopper 演示 Apk 错误