首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Graphhopper -如何设置路由配置文件'foot‘

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

Stack Overflow用户
提问于 2020-04-15 21:51:34
回答 1查看 507关注 0票数 1

如何设置路线配置文件'foot'?使用默认的配置文件'car‘,我无法计算任何位置(在森林中)和附近的人行道之间的距离。

我得到的错误消息是:

代码语言:javascript
运行
复制
> 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/

我的代码是:

代码语言:javascript
运行
复制
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路由数据:

代码语言:javascript
运行
复制
./graphhopper.sh -a import -i gelderland-latest.osm.pbf

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

代码语言:javascript
运行
复制
./graphhopper.sh -a import -p foot,bike,car -i netherlands-latest.osm.pbf  
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-15 23:47:22

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

在下面的回答中,我想要有一个同时适用于步行、自行车和汽车的路由设施。当然,只有一种“车辆”类型的路由是可能的。我还测试了路由配置文件'foot‘。

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

代码语言:javascript
运行
复制
graph.flag_encoders: foot,bike,car

和:

代码语言:javascript
运行
复制
profiles:
  - name: foot
    vehicle: foot
    weighting: fastest

代码语言:javascript
运行
复制
profiles_ch:
  - profile: foot

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

代码语言:javascript
运行
复制
./graphhopper.sh -a import -p foot,bike,car -i netherlands-latest.osm.pbf  

然后,使用相同的配置文件配置您的应用程序是很重要的。因此,即使只在你的应用程序中使用“foot”配置文件,也会导致不匹配--正如错误消息所暗示的那样。

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

代码语言:javascript
运行
复制
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);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61230460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档