Graphhopper未找到位置之间的连接

时间:2016-01-31 16:25:52

标签: java distance runtimeexception graphhopper

我使用:

创建了一个graphHopper实例
 GraphHopper hopper = new GraphHopper().forServer();
 hopper.setCHEnable(false);
 hopper.setGraphHopperLocation("hopper");
 hopper.setOSMFile("greater-london-latest.osm");
 hopper.setEncodingManager(new EncodingManager("car"));
 hopper.setMinNetworkSize(200, 100);
 hopper.importOrLoad();

我使用以下方式发送请求:

 GHRequest req = new GHRequest().addPoint(new GHPoint(latFrom, lonFrom)).addPoint(new GHPoint(latTo, lonTo))
            .setVehicle("car")
            .setLocale(Locale.ENGLISH)
            .setWeighting("fastest")
            .setAlgorithm(AlgorithmOptions.ASTAR_BI);

 req.getHints().put("pass_through", true);
 GHResponse res = hopper.route(req);

但是我收到以下错误:

 [java.lang.RuntimeException: Connection between locations not found]

这些是我正在使用的纬度/经度对的一些示例:

 Lat1 51.519265 Long1 -0.021345 Lat2 51.502635 Long2 -0.022702
 Lat1 51.49109 Long1 -0.018716 Lat2 51.502661 Long2 -0.021596
 Lat1 51.503143 Long1 -0.008428 Lat2 51.502661 Long2 -0.021596

我已经用https://graphhopper.com/maps/?point=51.499041%2C-0.020157&point=51.503083%2C-0.017676&locale=de&vehicle=car&weighting=fastest&elevation=true&layer=Lyrk对这些纬度/经度对进行了双重检查(全部)并且它们正在工作。

然后我搜索了一个解决方案,发现Graphhopper returns "not found"看起来像一个完全相同的问题,所以我在代码中添加了以下内容:

hopper.setMinNetworkSize(200, 100);

这个设置允许图形漏斗找到更多的连接但不幸的是有一些长/纬线对仍然不起作用(例子如上)。我该怎么做才能阻止RuntimeException:找不到位置之间的连接?

编辑:

切换长/纬线对似乎更好:

GHRequest req2 = new GHRequest().addPoint(new GHPoint(latTo, lonTo)).addPoint(new GHPoint(latFrom, lonFrom))

但这提供了相反的方向。我怎么能纠正这个?出现这个问题是因为这些是单向的街道吗?

1 个答案:

答案 0 :(得分:0)

我和你有同样的问题。 我的解决方案是:

hopper.setMinNetworkSize(200, 200);

当参数minOnewayNetworkSize设置为200时,路由器不会卡在(单向)岛上。

请参阅:Graphhopper returns "not found"