获得Lat / Lon塔节点的Graphhopper

时间:2016-03-03 11:42:34

标签: java graphhopper

我正在尝试获取EdgeIteratorState e 的基数和调整节点的lat / lon。我正在路由并从路由请求中获取路径。从Path对象我得到EdgeIteratorStates。

我是这样做的:

double lat = this.getGraphHopperStorage().getNodeAccess().getLatitude(e.getBaseNode());
double lon = this.getGraphHopperStorage().getNodeAccess().getLongitude(e.getBaseNode());
double latadj = this.getGraphHopperStorage().getNodeAccess().getLatitude(e.getAdjNode());
double lonadj = this.getGraphHopperStorage().getNodeAccess().getLongitude(e.getAdjNode());

这适用于大多数边缘。但在某些情况下(每次路线计算2次),我会得到一些长度为一些米的边缘,但两个节点中的一个位于1000公里以外。

一个例子:

edgeid: 23883882 base: 53.45419410886304, 10.13771746615434; adj: 47.80398136684257, 10.344953879973751; length of edge: 75.45741857808768 m speed: 45.0 waygeometry: (47.80348739333795,10.34522731628777,741.0), (47.80375542798092,10.345045708381662,741.0), (47.80398136684257,10.344953879973751,733.0)

我做错了什么?有没有其他方法来查询节点属性?

1 个答案:

答案 0 :(得分:1)

您最终是指虚拟节点的问题吗?来自算法的边缘状态是否来自QueryGraph?

您需要使用此“查询图表”来正确回答这些请求,而不是“图表存储”。

此外,我们应该对这些请求失败而不是默默地允许它们,请在此处查看问题:https://github.com/graphhopper/graphhopper/issues/642