@Override public RoutingAlgorithm createAlgo(Graph graph, AlgorithmOptions opts) { AbstractBidirAlgo algo = doCreateAlgo(graph, opts); algo.setEdgeFilter(new LevelEdgeFilter(prepareGraph)); algo.setMaxVisitedNodes(opts.getMaxVisitedNodes()); return algo; }
@Override public RoutingAlgorithm createAlgo(Graph g, AlgorithmOptions opts) { // doable but ugly Weighting w = ((PrepareContractionHierarchies) tmpFactory).getWeighting(); return new TmpAlgo(g, new PreparationWeighting(w), TraversalMode.NODE_BASED, mg). setEdgeFilter(new LevelEdgeFilter((CHGraph) routingGraph)); } };
description = "CH"; CHGraph lg = (CHGraph) graph; final CHEdgeExplorer chExplorer = lg.createEdgeExplorer(new LevelEdgeFilter(lg)); MiniPerfTest miniPerf = new MiniPerfTest() { @Override
@Test public void testEdgeFilter() { graph = createGHStorage(); CHGraph g = getGraph(graph); g.edge(0, 1, 10, true); g.edge(0, 2, 20, true); g.edge(2, 3, 30, true); g.edge(10, 11, 1, true); graph.freeze(); CHEdgeIteratorState tmpIter = g.shortcut(3, 4); tmpIter.setDistance(40).setFlags(carEncoder.setAccess(0, true, true)); assertEquals(EdgeIterator.NO_EDGE, tmpIter.getSkippedEdge1()); assertEquals(EdgeIterator.NO_EDGE, tmpIter.getSkippedEdge2()); g.shortcut(0, 4).setDistance(40).setFlags(carEncoder.setAccess(0, true, true)); g.setLevel(0, 1); g.setLevel(4, 1); EdgeIterator iter = g.createEdgeExplorer(new LevelEdgeFilter(g)).setBaseNode(0); assertEquals(1, GHUtility.count(iter)); iter = g.createEdgeExplorer().setBaseNode(2); assertEquals(2, GHUtility.count(iter)); tmpIter = g.shortcut(5, 6); tmpIter.setSkippedEdges(1, 2); assertEquals(1, tmpIter.getSkippedEdge1()); assertEquals(2, tmpIter.getSkippedEdge2()); }
public PrepareContractionHierarchies(Directory dir, GraphHopperStorage ghStorage, CHGraph chGraph, Weighting weighting, TraversalMode traversalMode) { this.ghStorage = ghStorage; this.prepareGraph = (CHGraphImpl) chGraph; this.traversalMode = traversalMode; levelFilter = new LevelEdgeFilter(prepareGraph); prepareWeighting = new PreparationWeighting(weighting); originalEdges = dir.find("original_edges_" + AbstractWeighting.weightingToFileName(weighting)); originalEdges.create(1000); }
@Override public RoutingAlgorithm createAlgo(Graph graph, AlgorithmOptions opts) { AbstractBidirAlgo algo = doCreateAlgo(graph, opts); algo.setEdgeFilter(new LevelEdgeFilter(prepareGraph)); algo.setMaxVisitedNodes(opts.getMaxVisitedNodes()); return algo; }
public PrepareContractionHierarchies( Directory dir, GraphHopperStorage ghStorage, CHGraph chGraph, FlagEncoder encoder, Weighting weighting, TraversalMode traversalMode ) { this.ghStorage = ghStorage; this.prepareGraph = (CHGraphImpl) chGraph; this.traversalMode = traversalMode; this.prepareFlagEncoder = encoder; levelFilter = new LevelEdgeFilter(prepareGraph); prepareWeighting = new PreparationWeighting(weighting); originalEdges = dir.find("original_edges_" + AbstractWeighting.weightingToFileName(weighting)); originalEdges.create(1000); }
/** * * @param graphFolder * @param memoryMapped * @param hopper * @param ownsHopper * Whether this class owns the graphhopper graph (and wrapper object) and should dispose of it later. * @param namedFlagEncoder */ private CHMatrixGeneration( GraphHopper hopper, boolean ownsHopper, String namedFlagEncoder) { this.hopper = hopper; this.ownsHopper = ownsHopper; encodingManager = hopper.getEncodingManager(); flagEncoder = identifyFlagEncoder(hopper, namedFlagEncoder); edgeFilter = new DefaultEdgeFilter(flagEncoder); WeightingMap weightingMap = new WeightingMap("fastest"); // Weighting weighting = hopper.createWeighting(weightingMap, flagEncoder); // prepareWeighting = new PreparationWeighting(weighting); // get correct weighting for flag encoder Weighting weighting = hopper.getWeightingForCH(weightingMap, flagEncoder); prepareWeighting = new PreparationWeighting(weighting); // save reference to the correct CH graph chGraph = hopper.getGraphHopperStorage().getGraph(CHGraph.class,weighting); // and create a level edge filter to ensure we (a) accept virtual (snap-to) edges and (b) don't descend into the // base graph levelEdgeFilter = new LevelEdgeFilter(chGraph); }
final EdgeFilter accessWithLevelFilter = new LevelEdgeFilter(prepareGraph) { @Override public final boolean accept(EdgeIteratorState edgeState) {
((DijkstraBidirectionCH) router).setEdgeFilter(new LevelEdgeFilter((CHGraph) routingGraph)); router.setMaxVisitedNodes(maxVisitedNodes); } else {
((DijkstraBidirectionCH) router).setEdgeFilter(new LevelEdgeFilter((CHGraph) routingGraph)); router.setMaxVisitedNodes(maxVisitedNodes); } else {
final EdgeFilter accessWithLevelFilter = new LevelEdgeFilter(prepareGraph)