我使用:
创建了一个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))
但这提供了相反的方向。我怎么能纠正这个?出现这个问题是因为这些是单向的街道吗?
答案 0 :(得分:0)
我和你有同样的问题。 我的解决方案是:
hopper.setMinNetworkSize(200, 200);
当参数minOnewayNetworkSize设置为200时,路由器不会卡在(单向)岛上。