我使用以下方法创建一个 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 返回"未找到",这看起来像一个相同的问题,所以我在我的代码中添加了以下内容:
hopper.setMinNetworkSize(200, 100);
此设置允许图形跳跃器找到更多的连接,但不幸的是,有一些长/纬度对仍然不起作用(示例如上(。如何停止运行时异常:找不到位置之间的连接?
编辑:
切换长/纬度对似乎更好:
GHRequest req2 = new GHRequest().addPoint(new GHPoint(latTo, lonTo)).addPoint(new GHPoint(latFrom, lonFrom))
但这提供了相反的方向。我该如何纠正此问题?出现此问题是否因为这些是单行道?
我和你有同样的问题。我的解决方案是:
hopper.setMinNetworkSize(200, 200);
当参数minOnewayNetworkSize设置为200时,路由器不会卡在(单向(孤岛中。
参见:Graphhopper 返回"未找到">