Java 获取塔架节点的纬度/经度图

Java 获取塔架节点的纬度/经度图,java,graphhopper,Java,Graphhopper,我正在尝试获取基的lat/lon和edgeiterator状态的adj节点e。我正在路由并从路由请求获取路径。从路径对象中,我得到了EdgeIteratorStates 我是这样做的: double lat = this.getGraphHopperStorage().getNodeAccess().getLatitude(e.getBaseNode()); double lon = this.getGraphHopperStorage().getNodeAccess().getLongitud

我正在尝试获取基的lat/lon和edgeiterator状态的adj节点e。我正在路由并从路由请求获取路径。从路径对象中,我得到了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
基数:53.45419410886304,10.13771746615434;
形容词:47.80398136684257,10.344953879973751;
边缘长度:75.45741857808768 m
速度:45.0
轨道几何:(47.8034873933795,10.3452273128777741.0),(47.8037554798092,10.34504570838162741.0),(47.80398136684257,10.344953879973751733.0)


我做错了什么?是否有其他方法可以查询节点属性?

您最终是指虚拟节点的问题吗?edgestates是否来自与QueryGraph相关的算法

您需要这个“查询图”来正确回答这些请求,而不是“图形存储”


此外,我们应该让这些请求失败,而不是默默地允许它们,请参见此处的问题:

是的,我通过Graphhopper.calcpath(req,res)计算路径。在这个路径列表上,我执行calcEdges()以获取EdgeIteratorStates。第一条边和最后一条边的节点错误。我通过删除这些边并对起点和终点执行QueryResult->getClosestEdge()来解决问题。这两条边是虚拟边吗?非常感谢。是的,根据请求在两个交叉点之间引入虚拟节点。现在在文档中更好地解释了虚拟节点: