@Override public int getAdjNode() { return edges.get(current).getAdjNode(); }
@Override public String toString() { if (closestEdge != null) return closestEdge.getBaseNode() + "-" + closestEdge.getAdjNode() + " " + snappedPoint; return closestNode + ", " + queryPoint + ", " + wayIndex; }
@Override public final boolean accept(EdgeIteratorState iter) { // ignore if it is skipNode or adjNode is already contracted int node = iter.getAdjNode(); return avoidNode != node && graph.getLevel(node) == maxLevel; } }
@Override public boolean accept(EdgeIteratorState iter) { return iter.getAdjNode() != 5; } });
@Override public boolean accept(EdgeIteratorState iter) { return iter.getAdjNode() != 3; } });
@Override public void next(EdgeIteratorState eb, int index, int prevEdgeId) { nodes.add(eb.getAdjNode()); }
@Override public EdgeIteratorState getEdgeIteratorState(int origEdgeId, int adjNode) { if (!isVirtualEdge(origEdgeId)) return mainGraph.getEdgeIteratorState(origEdgeId, adjNode); int edgeId = origEdgeId - mainEdges; EdgeIteratorState eis = virtualEdges.get(edgeId); if (eis.getAdjNode() == adjNode || adjNode == Integer.MIN_VALUE) return eis; edgeId = getPosOfReverseEdge(edgeId); EdgeIteratorState eis2 = virtualEdges.get(edgeId); if (eis2.getAdjNode() == adjNode) return eis2; throw new IllegalStateException("Edge " + origEdgeId + " not found with adjNode:" + adjNode + ". found edges were:" + eis + ", " + eis2); }
@Override protected SPTEntry createEntry(EdgeIteratorState edge, double weight, SPTEntry parent, boolean reverse) { SPTEntry entry = new SPTEntry(edge.getEdge(), edge.getAdjNode(), weight); entry.parent = parent; return entry; }
@Override protected void updateEntry(SPTEntry entry, EdgeIteratorState edge, double weight, SPTEntry parent, boolean reverse) { entry.edge = edge.getEdge(); entry.weight = weight + weightApprox.approximate(edge.getAdjNode(), reverse); ((AStarEntry) entry).weightOfVisitedPath = weight; entry.parent = parent; }
public static int getAdjNode(Graph g, int edge, int adjNode) { if (EdgeIterator.Edge.isValid(edge)) { EdgeIteratorState iterTo = g.getEdgeIteratorState(edge, adjNode); return iterTo.getAdjNode(); } return adjNode; }
private static void printUnitTestEdge(FlagEncoder flagEncoder, EdgeIteratorState edge) { boolean fwd = edge.isForward(flagEncoder); boolean bwd = edge.isBackward(flagEncoder); if (!fwd && !bwd) { return; } int from = fwd ? edge.getBaseNode() : edge.getAdjNode(); int to = fwd ? edge.getAdjNode() : edge.getBaseNode(); System.out.printf(Locale.ROOT, "graph.edge(%d, %d, %f, %s);\n", from, to, edge.getDistance(), fwd && bwd ? "true" : "false"); }
@Override protected SPTEntry createEntry(EdgeIteratorState edge, double weight, SPTEntry parent, boolean reverse) { int neighborNode = edge.getAdjNode(); double heapWeight = weight + weightApprox.approximate(neighborNode, reverse); AStarEntry entry = new AStarEntry(edge.getEdge(), neighborNode, heapWeight, weight); entry.parent = parent; return entry; }
@Override public boolean accept(EdgeIteratorState iter) { return iter.getBaseNode() == 2 || iter.getAdjNode() == 2; } }).getClosestNode());
static GHPoint getPointForOrientationCalculation(EdgeIteratorState edgeIteratorState, NodeAccess nodeAccess) { double tmpLat; double tmpLon; PointList tmpWayGeo = edgeIteratorState.fetchWayGeometry(3); if (tmpWayGeo.getSize() <= 2) { tmpLat = nodeAccess.getLatitude(edgeIteratorState.getAdjNode()); tmpLon = nodeAccess.getLongitude(edgeIteratorState.getAdjNode()); } else { tmpLat = tmpWayGeo.getLatitude(1); tmpLon = tmpWayGeo.getLongitude(1); } return new GHPoint(tmpLat, tmpLon); } }
@Override public boolean accept(EdgeIteratorState edgeIterState) { int base = edgeIterState.getBaseNode(); int adj = edgeIterState.getAdjNode(); // always accept virtual edges, see #288 if (base >= maxNodes || adj >= maxNodes) return true; // minor performance improvement: shortcuts in wrong direction are disconnected, so no need to exclude them if (((CHEdgeIteratorState) edgeIterState).isShortcut()) return true; return graph.getLevel(base) <= graph.getLevel(adj); } }
@Override protected boolean checkAdjacent(EdgeIteratorState edge) { int adjNodeId = edge.getAdjNode(); if (localShape.contains(na.getLatitude(adjNodeId), na.getLongitude(adjNodeId))) { edgeIds.add(edge.getEdge()); return true; } return isPolygon && isInsideBBox(adjNodeId); }
private String getCoords(EdgeIteratorState edge, Graph graph) { NodeAccess na = graph.getNodeAccess(); int base = edge.getBaseNode(); int adj = edge.getAdjNode(); return base + "->" + adj + " (" + edge.getEdge() + "); " + na.getLat(base) + "," + na.getLon(base) + " -> " + na.getLat(adj) + "," + na.getLon(adj); }
@Override public void finish() { if (prevInRoundabout) { // calc angle between roundabout entrance and finish double orientation = Helper.ANGLE_CALC.calcOrientation(doublePrevLat, doublePrevLon, prevLat, prevLon); orientation = Helper.ANGLE_CALC.alignOrientation(prevOrientation, orientation); double delta = (orientation - prevOrientation); ((RoundaboutInstruction) prevInstruction).setRadian(delta); } Instruction finishInstruction = new FinishInstruction(nodeAccess, prevEdge.getAdjNode()); // This is the heading how the edge ended finishInstruction.setExtraInfo("last_heading", Helper.ANGLE_CALC.calcAzimuth(doublePrevLat, doublePrevLon, prevLat, prevLon)); ways.add(finishInstruction); }
@Test public void testNameIndex() { graph = createGHStorage(); EdgeIteratorState iter1 = graph.edge(0, 1, 10, true); iter1.setName("named street1"); EdgeIteratorState iter2 = graph.edge(0, 1, 10, true); iter2.setName("named street2"); assertEquals("named street1", graph.getEdgeIteratorState(iter1.getEdge(), iter1.getAdjNode()).getName()); assertEquals("named street2", graph.getEdgeIteratorState(iter2.getEdge(), iter2.getAdjNode()).getName()); }
@Test public void testEdgeReturn() { graph = createGHStorage(); EdgeIteratorState iter = graph.edge(4, 10).setDistance(100).setFlags(carEncoder.setProperties(10, true, false)); assertEquals(4, iter.getBaseNode()); assertEquals(10, iter.getAdjNode()); iter = graph.edge(14, 10).setDistance(100).setFlags(carEncoder.setProperties(10, true, false)); assertEquals(14, iter.getBaseNode()); assertEquals(10, iter.getAdjNode()); }