/** * If you have an EdgeIteratorState the other createTraversalId is preferred! */ public final int createTraversalId(int baseNode, int adjNode, int edgeId, boolean reverse) { if (edgeBased) { if (noOfStates == 1) return edgeId; return GHUtility.createEdgeKey(baseNode, adjNode, edgeId, reverse); } return adjNode; }
@Test public void testEdgeStuff() { assertEquals(6, GHUtility.createEdgeKey(1, 2, 3, false)); assertEquals(7, GHUtility.createEdgeKey(2, 1, 3, false)); assertEquals(7, GHUtility.createEdgeKey(1, 2, 3, true)); assertEquals(6, GHUtility.createEdgeKey(2, 1, 3, true)); assertEquals(8, GHUtility.createEdgeKey(1, 2, 4, false)); assertEquals(9, GHUtility.createEdgeKey(2, 1, 4, false)); assertTrue(GHUtility.isSameEdgeKeys(GHUtility.createEdgeKey(1, 2, 4, false), GHUtility.createEdgeKey(1, 2, 4, false))); assertTrue(GHUtility.isSameEdgeKeys(GHUtility.createEdgeKey(2, 1, 4, false), GHUtility.createEdgeKey(1, 2, 4, false))); assertFalse(GHUtility.isSameEdgeKeys(GHUtility.createEdgeKey(1, 2, 4, false), GHUtility.createEdgeKey(1, 2, 5, false))); }
/** * Returns the identifier to access the map of the shortest path tree according to the traversal * mode. E.g. returning the adjacent node id in node-based behavior whilst returning the edge id * in edge-based behavior * <p> * * @param iterState the current {@link EdgeIteratorState} * @param reverse <code>true</code>, if traversal in backward direction. Will be true only for * backward searches in bidirectional algorithms. * @return the identifier to access the shortest path tree */ public final int createTraversalId(EdgeIteratorState iterState, boolean reverse) { if (edgeBased) { if (noOfStates == 1) return iterState.getEdge(); return GHUtility.createEdgeKey(iterState.getBaseNode(), iterState.getAdjNode(), iterState.getEdge(), reverse); } return iterState.getAdjNode(); }
int origTraversalKey = GHUtility.createEdgeKey(baseNode, adjNode, closestEdge.getEdge(), false); int origRevTraversalKey = GHUtility.createEdgeKey(baseNode, adjNode, closestEdge.getEdge(), true); long reverseFlags = closestEdge.detach(true).getFlags(); int prevWayIndex = 1;
@Test public void testInternalAPIOriginalTraversalKey() { initGraph(g); EdgeExplorer explorer = g.createEdgeExplorer(); QueryGraph queryGraph = new QueryGraph(g); EdgeIterator iter = explorer.setBaseNode(1); assertTrue(iter.next()); int origEdgeId = iter.getEdge(); QueryResult res = createLocationResult(2, 1.5, iter, 1, PILLAR); queryGraph.lookup(Arrays.asList(res)); assertEquals(new GHPoint(1.5, 1.5), res.getSnappedPoint()); assertEquals(3, res.getClosestNode()); EdgeExplorer qGraphExplorer = queryGraph.createEdgeExplorer(); iter = qGraphExplorer.setBaseNode(3); assertTrue(iter.next()); assertEquals(0, iter.getAdjNode()); assertEquals(GHUtility.createEdgeKey(1, 0, origEdgeId, false), ((VirtualEdgeIteratorState) queryGraph.getEdgeIteratorState(iter.getEdge(), 0)).getOriginalTraversalKey()); assertTrue(iter.next()); assertEquals(1, iter.getAdjNode()); assertEquals(GHUtility.createEdgeKey(0, 1, origEdgeId, false), ((VirtualEdgeIteratorState) queryGraph.getEdgeIteratorState(iter.getEdge(), 1)).getOriginalTraversalKey()); }
/** * If you have an EdgeIteratorState the other createTraversalId is preferred! */ public final int createTraversalId(int baseNode, int adjNode, int edgeId, boolean reverse) { if (edgeBased) { if (noOfStates == 1) return edgeId; return GHUtility.createEdgeKey(baseNode, adjNode, edgeId, reverse); } return adjNode; }
/** * If you have an EdgeIteratorState the other createTraversalId is preferred! */ public final int createTraversalId(int baseNode, int adjNode, int edgeId, boolean reverse) { if (edgeBased) { if (noOfStates == 1) return edgeId; return GHUtility.createEdgeKey(baseNode, adjNode, edgeId, reverse); } return adjNode; }
/** * If you have an EdgeIteratorState the other createTraversalId is preferred! */ public final int createTraversalId( int baseNode, int adjNode, int edgeId, boolean reverse ) { if (edgeBased) { if (noOfStates == 1) return edgeId; return GHUtility.createEdgeKey(baseNode, adjNode, edgeId, reverse); } return adjNode; }
EdgeIteratorState edge = em.getEdgeState(); traversalKeylist.add(GHUtility.createEdgeKey(edge.getBaseNode(), edge.getAdjNode(), edge.getEdge(), false));
/** * Returns the identifier to access the map of the shortest path tree according to the traversal * mode. E.g. returning the adjacent node id in node-based behavior whilst returning the edge id * in edge-based behavior * <p> * * @param iterState the current {@link EdgeIteratorState} * @param reverse <code>true</code>, if traversal in backward direction. Will be true only for * backward searches in bidirectional algorithms. * @return the identifier to access the shortest path tree */ public final int createTraversalId(EdgeIteratorState iterState, boolean reverse) { if (edgeBased) { if (noOfStates == 1) return iterState.getEdge(); return GHUtility.createEdgeKey(iterState.getBaseNode(), iterState.getAdjNode(), iterState.getEdge(), reverse); } return iterState.getAdjNode(); }
/** * Returns the identifier to access the map of the shortest path tree according to the traversal * mode. E.g. returning the adjacent node id in node-based behavior whilst returning the edge id * in edge-based behavior * <p> * @param iterState the current {@link EdgeIteratorState} * @param reverse <code>true</code>, if traversal in backward direction. Will be true only for * backward searches in bidirectional algorithms. * @return the identifier to access the shortest path tree */ public final int createTraversalId( EdgeIteratorState iterState, boolean reverse ) { if (edgeBased) { if (noOfStates == 1) return iterState.getEdge(); return GHUtility.createEdgeKey(iterState.getBaseNode(), iterState.getAdjNode(), iterState.getEdge(), reverse); } return iterState.getAdjNode(); }
/** * Returns the identifier to access the map of the shortest path tree according to the traversal * mode. E.g. returning the adjacent node id in node-based behavior whilst returning the edge id * in edge-based behavior * <p> * * @param iterState the current {@link EdgeIteratorState} * @param reverse <code>true</code>, if traversal in backward direction. Will be true only for * backward searches in bidirectional algorithms. * @return the identifier to access the shortest path tree */ public final int createTraversalId(EdgeIteratorState iterState, boolean reverse) { if (edgeBased) { if (noOfStates == 1) return iterState.getEdge(); return GHUtility.createEdgeKey(iterState.getBaseNode(), iterState.getAdjNode(), iterState.getEdge(), reverse); } return iterState.getAdjNode(); }
int origTraversalKey = GHUtility.createEdgeKey(baseNode, adjNode, closestEdge.getEdge(), false); int origRevTraversalKey = GHUtility.createEdgeKey(baseNode, adjNode, closestEdge.getEdge(), true); long reverseFlags = closestEdge.detach(true).getFlags(); int prevWayIndex = 1;
int origTraversalKey = GHUtility.createEdgeKey(baseNode, adjNode, closestEdge.getEdge(), false); int origRevTraversalKey = GHUtility.createEdgeKey(baseNode, adjNode, closestEdge.getEdge(), true); long reverseFlags = closestEdge.detach(true).getFlags(); int prevWayIndex = 1;
int origTraversalKey = GHUtility.createEdgeKey(baseNode, adjNode, closestEdge.getEdge(), false); int origRevTraversalKey = GHUtility.createEdgeKey(baseNode, adjNode, closestEdge.getEdge(), true); long reverseFlags = closestEdge.detach(true).getFlags(); int prevWayIndex = 1;