0

问题

在我的 Graphhopper (GH) 安装中,有些情况是不可路由的,我认为应该是可路由的。相同的路由在 GH Demo 版本上是可路由的,而我的安装使用最新的 GH 代码。

例子

当我在我的机器上收到“未找到”错误时,此路线可在 GH 演示服务器上进行规划。

虽然当我调用第二点时locationIndex

LocationIndex index = hopper.getLocationIndex();
QueryResult qr = index.findClosest( place.lat, place.lon, EdgeFilter.ALL_EDGES );
GHPoint3D snappedPoint = qr.getSnappedPoint();

它被发现(距该点约 20-30m)。这让我相信我使用的 OSM 数据是正确的(我仔细检查了上个月是否连接了道路并且没有编辑,因为我使用的是一个月前的 OSM 数据)。

这是另一个示例 编辑:用新数据集修复!在我的机器上无法规划的路线,而它在 GH 演示服务器上工作并在locationIndex. 我没有修改 GH 代码。

配置

我在服务器上使用的配置如下:

graph.dataaccess=RAM_STORE
prepare.chWeighting=no
osmreader.wayPointMaxDistance=1
graph.flagEncoders=bike,foot
web.jsonpAllowed=true

问题:

我可以配置一些东西来允许这些路由是可路由的吗?或者你能指出我正确的方向,我的问题的原因是什么?

编辑:使用新数据集,我发布的第二个示例是“固定的”。第一个还在。。

另外,一个新的例子。好像我的路由机器无法使用 GH 用来实现结果的“主要”道路。我仔细检查了自行车标志编码器​​(全部 3 个)是否与主 GH 版本相同,它们是。这部分可以用我之前的 OSM 数据集进行路由,所以我去看看 OSM 数据有什么变化。不幸的是,我看不到数据集中的确切变化,但与主干道相邻的自行车道指定了 oneway=true。也许这仍然与我的单向设置有关?

4

1 回答 1

2

在Karussel的帮助下,我们找到了问题所在。

问题是,在准备图表时,图表中的一些“子网络”会被删除,因为它们低于封闭岛可路由所需的最小节点数量的阈值。可以使用您的以下属性来降低此阈值config.properties(请参阅此问题

prepare.minOnewayNetworkSize=200 
prepare.minNetworkSize=100

这将解决我在问题中的示例。虽然因为我正在为两辆车(脚和自行车)创建一个准备好的图表,但在当前的 Graphhopper 版本中,不使用此设置。因此,这仅在图表中有一辆车时才有效。

可以在此处找到当前的 Github 问题。

于 2015-02-11T13:15:02.143 回答