protected void initExampleGraph(Graph g) { NodeAccess na = g.getNodeAccess(); na.setNode(0, 12, 23); na.setNode(1, 38.33f, 135.3f); na.setNode(2, 6, 139); na.setNode(3, 78, 89); na.setNode(4, 2, 1); na.setNode(5, 7, 5); g.edge(0, 1, 12, true); g.edge(0, 2, 212, true); g.edge(0, 3, 212, true); g.edge(0, 4, 212, true); g.edge(0, 5, 212, true); }
private void interpolateElevationsOfInnerNodesForOneOuterNode(int outerNodeId, int[] innerNodeIds) { NodeAccess nodeAccess = storage.getNodeAccess(); double ele = nodeAccess.getEle(outerNodeId); for (int innerNodeId : innerNodeIds) { double lat = nodeAccess.getLat(innerNodeId); double lon = nodeAccess.getLon(innerNodeId); nodeAccess.setNode(innerNodeId, lat, lon, ele); } }
@Test public void testFindingWayGeometry() { Graph g = createGHStorage(encodingManager); NodeAccess na = g.getNodeAccess(); na.setNode(10, 51.2492152, 9.4317166); na.setNode(20, 52, 9); na.setNode(30, 51.2, 9.4); na.setNode(50, 49, 10); g.edge(20, 50, 1, true).setWayGeometry(Helper.createPointList(51.25, 9.43)); g.edge(10, 20, 1, true); g.edge(20, 30, 1, true); LocationIndex index = createIndex(g, 2000); assertEquals(20, findID(index, 51.25, 9.43)); }
@Test public void testMoreReal() { Graph graph = createGHStorage(new EncodingManager("car")); NodeAccess na = graph.getNodeAccess(); na.setNode(1, 51.2492152, 9.4317166); na.setNode(0, 52, 9); na.setNode(2, 51.2, 9.4); na.setNode(3, 49, 10); graph.edge(1, 0, 1000, true); graph.edge(0, 2, 1000, true); graph.edge(0, 3, 1000, true).setWayGeometry(Helper.createPointList(51.21, 9.43)); LocationIndex index = createIndex(graph, -1); assertEquals(2, findID(index, 51.2, 9.4)); }
@Test public void testNoErrorOnEdgeCase_lastIndex() { final EncodingManager encodingManager = new EncodingManager("car"); int locs = 10000; Graph g = AbstractLocationIndexTester.this.createGHStorage(new MMapDirectory(location), encodingManager, false); NodeAccess na = g.getNodeAccess(); Random rand = new Random(12); for (int i = 0; i < locs; i++) { na.setNode(i, (float) rand.nextDouble() * 10 + 10, (float) rand.nextDouble() * 10 + 10); } idx = createIndex(g, 200); Helper.close((Closeable) g); }
private void wireUpArrivalTimeline(int streetNode, Stop stop, NavigableMap<Integer, Integer> arrivalTimeline, int route_type, GtfsStorageI.PlatformDescriptor platformDescriptorIfStatic) { nodeAccess.setNode(i++, stop.stop_lat, stop.stop_lon); int stopExitNode = i - 1; nodeAccess.setAdditionalNodeField(stopExitNode, NodeType.STOP_EXIT_NODE.ordinal()); EdgeIteratorState exitEdge = graph.edge(stopExitNode, streetNode); exitEdge.setFlags(encoder.setAccess(exitEdge.getFlags(), true, false)); setEdgeTypeAndClearDistance(exitEdge, GtfsStorage.EdgeType.EXIT_PT); exitEdge.setFlags(encoder.setValidityId(exitEdge.getFlags(), route_type)); exitEdge.setName(stop.stop_name); if (platformDescriptorIfStatic != null) { gtfsStorage.getRoutes().put(exitEdge.getEdge(), platformDescriptorIfStatic); } wireUpAndConnectTimeline(stop, stopExitNode, arrivalTimeline, GtfsStorage.EdgeType.LEAVE_TIME_EXPANDED_NETWORK, GtfsStorage.EdgeType.WAIT_ARRIVAL); }
private void wireUpDepartureTimeline(int streetNode, Stop stop, NavigableMap<Integer, Integer> departureTimeline, int route_type, GtfsStorageI.PlatformDescriptor platformDescriptorIfStatic) { nodeAccess.setNode(i++, stop.stop_lat, stop.stop_lon); int stopEnterNode = i - 1; nodeAccess.setAdditionalNodeField(stopEnterNode, NodeType.STOP_ENTER_NODE.ordinal()); EdgeIteratorState entryEdge = graph.edge(streetNode, stopEnterNode); entryEdge.setFlags(encoder.setAccess(entryEdge.getFlags(), true, false)); setEdgeTypeAndClearDistance(entryEdge, GtfsStorage.EdgeType.ENTER_PT); entryEdge.setFlags(encoder.setValidityId(entryEdge.getFlags(), route_type)); entryEdge.setName(stop.stop_name); if (platformDescriptorIfStatic != null) { gtfsStorage.getRoutes().put(entryEdge.getEdge(), platformDescriptorIfStatic); } wireUpAndConnectTimeline(stop, stopEnterNode, departureTimeline, GtfsStorage.EdgeType.ENTER_TIME_EXPANDED_NETWORK, GtfsStorage.EdgeType.WAIT); }
@Test public void testBounds() { graph = createGHStorage(); BBox b = graph.getBounds(); assertEquals(BBox.createInverse(false).maxLat, b.maxLat, 1e-6); NodeAccess na = graph.getNodeAccess(); na.setNode(0, 10, 20); assertEquals(10, b.maxLat, 1e-6); assertEquals(20, b.maxLon, 1e-6); na.setNode(0, 15, -15); assertEquals(15, b.maxLat, 1e-6); assertEquals(20, b.maxLon, 1e-6); assertEquals(10, b.minLat, 1e-6); assertEquals(-15, b.minLon, 1e-6); }
private Graph initExampleGraph() { GraphHopperStorage gs = new GraphHopperStorage(new RAMDirectory(), em, true, new GraphExtension.NoOpExtension()).create(1000); NodeAccess na = gs.getNodeAccess(); // 50--(0.0001)-->49--(0.0004)-->55--(0.0005)-->60 na.setNode(0, 51.1, 12.001, 50); na.setNode(1, 51.1, 12.002, 60); EdgeIteratorState edge = gs.edge(0, 1). setWayGeometry(Helper.createPointList3D(51.1, 12.0011, 49, 51.1, 12.0015, 55)); edge.setDistance(100); edge.setFlags(encoder.setReverseSpeed(encoder.setProperties(10, true, true), 15)); return gs; }
private Graph initExampleGraph() { GraphHopperStorage gs = new GraphHopperStorage(new RAMDirectory(), em, true, new GraphExtension.NoOpExtension()).create(1000); NodeAccess na = gs.getNodeAccess(); // 50--(0.0001)-->49--(0.0004)-->55--(0.0005)-->60 na.setNode(0, 51.1, 12.001, 50); na.setNode(1, 51.1, 12.002, 60); EdgeIteratorState edge = gs.edge(0, 1). setWayGeometry(Helper.createPointList3D(51.1, 12.0011, 49, 51.1, 12.0015, 55)); edge.setDistance(100); edge.setFlags(encoder.setReverseSpeed(encoder.setProperties(10, true, true), 15)); return gs; }
public static void updateDistancesFor(Graph g, int node, double lat, double lon) { NodeAccess na = g.getNodeAccess(); na.setNode(node, lat, lon); EdgeIterator iter = g.createEdgeExplorer().setBaseNode(node); while (iter.next()) { iter.setDistance(iter.fetchWayGeometry(3).calcDistance(distCalc)); // System.out.println(node + "->" + adj + ": " + iter.getDistance()); } }
@Test public void testSetNodes() { graph = createGHStorage(); NodeAccess na = graph.getNodeAccess(); for (int i = 0; i < defaultSize * 2; i++) { na.setNode(i, 2 * i, 3 * i); } graph.edge(defaultSize + 1, defaultSize + 2, 10, true); graph.edge(defaultSize + 1, defaultSize + 3, 10, true); assertEquals(2, GHUtility.count(carAllExplorer.setBaseNode(defaultSize + 1))); }
@Test public void testGetLocations() { graph = createGHStorage(); NodeAccess na = graph.getNodeAccess(); na.setNode(0, 12, 23); na.setNode(1, 22, 23); assertEquals(2, graph.getNodes()); graph.edge(0, 1, 10, true); assertEquals(2, graph.getNodes()); graph.edge(0, 2, 10, true); assertEquals(3, graph.getNodes()); Helper.close((Closeable) graph); graph = createGHStorage(); assertEquals(0, graph.getNodes()); }
@Test public void testEnabledElevation() { graph = createGHStorage(defaultGraphLoc, true); NodeAccess na = graph.getNodeAccess(); assertTrue(na.is3D()); na.setNode(0, 10, 20, -10); na.setNode(1, 11, 2, 100); assertEquals(-10, na.getEle(0), 1e-1); assertEquals(100, na.getEle(1), 1e-1); graph.edge(0, 1).setWayGeometry(Helper.createPointList3D(10, 27, 72, 11, 20, 1)); assertEquals(Helper.createPointList3D(10, 27, 72, 11, 20, 1), GHUtility.getEdge(graph, 0, 1).fetchWayGeometry(0)); assertEquals(Helper.createPointList3D(10, 20, -10, 10, 27, 72, 11, 20, 1, 11, 2, 100), GHUtility.getEdge(graph, 0, 1).fetchWayGeometry(3)); assertEquals(Helper.createPointList3D(11, 2, 100, 11, 20, 1, 10, 27, 72, 10, 20, -10), GHUtility.getEdge(graph, 1, 0).fetchWayGeometry(3)); }