@Override public PreProcessDijkstra.DeadEndData getPreProcessData(final Node n) { return ((RoutingNetworkNode) n).getDeadEndData(); } }
public void addNode(RoutingNetworkNode nn) { this.nodes.put(nn.getId(), nn); }
@Override public synchronized LeastCostPathCalculator createPathCalculator(final Network network, final TravelDisutility travelCosts, final TravelTime travelTimes) { RoutingNetwork routingNetwork = this.routingNetworks.get(network); PreProcessEuclidean preProcessEuclidean = this.preProcessData.get(network); if (routingNetwork == null) { routingNetwork = this.routingNetworkFactory.createRoutingNetwork(network); if (preProcessEuclidean == null) { preProcessEuclidean = new PreProcessEuclidean(travelCosts); preProcessEuclidean.run(network); this.preProcessData.put(network, preProcessEuclidean); for (RoutingNetworkNode node : routingNetwork.getNodes().values()) { node.setDeadEndData(preProcessEuclidean.getNodeData(node.getNode())); } } this.routingNetworks.put(network, routingNetwork); } FastRouterDelegateFactory fastRouterFactory = new ArrayFastRouterDelegateFactory(); return new FastAStarEuclidean(routingNetwork, preProcessEuclidean, travelCosts, travelTimes, overdoFactor, fastRouterFactory); } }
dijkstraNode.setOutLinksArray(outLinks);
@Override public void relaxNode(final Node outNode, final Node toNode, final RouterPriorityQueue<Node> pendingNodes) { RoutingNetworkNode routingNetworkNode = (RoutingNetworkNode) outNode; NodeData outData = getData(routingNetworkNode); double currTime = outData.getTime(); double currCost = outData.getCost(); if (this.dijkstra.pruneDeadEnds) { PreProcessDijkstra.DeadEndData ddOutData = getPreProcessData(routingNetworkNode); for (Link l : routingNetworkNode.getOutLinksArray()) { this.dijkstra.relaxNodeLogic(l, pendingNodes, currTime, currCost, toNode, ddOutData); } } else { // this.pruneDeadEnds == false for (Link l : routingNetworkNode.getOutLinksArray()) { this.dijkstra.relaxNodeLogic(l, pendingNodes, currTime, currCost, toNode, null); } } }
@Override public synchronized LeastCostPathCalculator createPathCalculator(final Network network, final TravelDisutility travelCosts, final TravelTime travelTimes) { RoutingNetwork routingNetwork = this.routingNetworks.get(network); PreProcessDijkstra preProcessDijkstra = this.preProcessData.get(network); if (routingNetwork == null) { routingNetwork = this.routingNetworkFactory.createRoutingNetwork(network); if (this.usePreProcessData) { if (preProcessDijkstra == null) { preProcessDijkstra = new PreProcessDijkstra(); preProcessDijkstra.run(network); this.preProcessData.put(network, preProcessDijkstra); for (RoutingNetworkNode node : routingNetwork.getNodes().values()) { node.setDeadEndData(preProcessDijkstra.getNodeData(node.getNode())); } } } this.routingNetworks.put(network, routingNetwork); } FastRouterDelegateFactory fastRouterFactory = new ArrayFastRouterDelegateFactory(); return new FastMultiNodeDijkstra(routingNetwork, travelCosts, travelTimes, preProcessDijkstra, fastRouterFactory, this.searchAllEndNodes); } }
dijkstraNode.setOutLinksArray(outLinks);
ArrayList<Link> links = new ArrayList<>(); nodes.add(0, ((RoutingNetworkNode) toNode).getNode()); Link tmpLink = getData(toNode).getPrevLink();
@Override public synchronized LeastCostPathCalculator createPathCalculator(final Network network, final TravelDisutility travelCosts, final TravelTime travelTimes) { RoutingNetwork routingNetwork = this.routingNetworks.get(network); PreProcessDijkstra preProcessDijkstra = this.preProcessData.get(network); if (routingNetwork == null) { routingNetwork = this.routingNetworkFactory.createRoutingNetwork(network); if (this.usePreProcessData) { if (preProcessDijkstra == null) { preProcessDijkstra = new PreProcessDijkstra(); preProcessDijkstra.run(network); this.preProcessData.put(network, preProcessDijkstra); for (RoutingNetworkNode node : routingNetwork.getNodes().values()) { node.setDeadEndData(preProcessDijkstra.getNodeData(node.getNode())); } } } this.routingNetworks.put(network, routingNetwork); } FastRouterDelegateFactory fastRouterFactory = new ArrayFastRouterDelegateFactory(); return new FastDijkstra(routingNetwork, travelCosts, travelTimes, preProcessDijkstra, fastRouterFactory); } }
@Override public synchronized LeastCostPathCalculator createPathCalculator(final Network network, final TravelDisutility travelCosts, final TravelTime travelTimes) { RoutingNetwork routingNetwork = this.routingNetworks.get(network); PreProcessLandmarks preProcessLandmarks = this.preProcessData.get(network); if (routingNetwork == null) { routingNetwork = this.routingNetworkFactory.createRoutingNetwork(network); if (preProcessLandmarks == null) { preProcessLandmarks = new PreProcessLandmarks(travelCosts); preProcessLandmarks.setNumberOfThreads(nThreads); preProcessLandmarks.run(network); this.preProcessData.put(network, preProcessLandmarks); for (RoutingNetworkNode node : routingNetwork.getNodes().values()) { node.setDeadEndData(preProcessLandmarks.getNodeData(node.getNode())); } } this.routingNetworks.put(network, routingNetwork); } FastRouterDelegateFactory fastRouterFactory = new ArrayFastRouterDelegateFactory(); final double overdoFactor = 1.0; return new FastAStarLandmarks(routingNetwork, preProcessLandmarks, travelCosts, travelTimes, overdoFactor, fastRouterFactory); } }
@Override public LeastCostPathCalculator createPathCalculator(final Network network, final TravelDisutility travelCosts, final TravelTime travelTimes) { RoutingNetwork routingNetwork = this.routingNetworks.get(network); PreProcessDijkstra preProcessDijkstra = this.preProcessData.get(network); if (routingNetwork == null) { routingNetwork = this.routingNetworkFactory.createRoutingNetwork(network); if (this.usePreProcessData) { if (preProcessDijkstra == null) { preProcessDijkstra = new PreProcessDijkstra(); preProcessDijkstra.run(network); this.preProcessData.put(network, preProcessDijkstra); } if (preProcessDijkstra.containsData()) { for (RoutingNetworkNode node : routingNetwork.getNodes().values()) { node.setDeadEndData(preProcessDijkstra.getNodeData(node.getNode())); } } } this.routingNetworks.put(network, routingNetwork); } FastRouterDelegateFactory fastRouterFactory = new ArrayFastRouterDelegateFactory(); return new BackwardFastMultiNodeDijkstra(routingNetwork, travelCosts, travelTimes, preProcessDijkstra, fastRouterFactory, this.searchAllEndNodes); } }