/** * Look up the {@link Cluster} node of the provided {@link Node}. * @param node * @return */ protected Node getClusteredNode(Node node) { // returns null if node was not merged into a clustered node Node n = mergedNodeId2clusterNode.get(node.getId()); return n; }
@Override public Zone getZone(Node node) { return nodeToZoneMap.get(node.getId()); } }
/*package*/ void checkNodeBelongToNetwork(Node node) { if (this.network.getNodes().get(node.getId()) != node) { throw new IllegalArgumentException("The nodes passed as parameters are not part of the network stored by "+ getClass().getSimpleName() + ": the validity of the results cannot be guaranteed. Aborting!"); } }
public List<Link> convertInvertedNodesToLinks(List<Node> nodes) { List<Link> ret = new ArrayList<Link>(nodes.size()); for (Node n : nodes){ ret.add(this.originalNetwork.getLinks().get(Id.create(n.getId(), Link.class))); } return ret; }
public static Map<Id<Node>, ? extends Node> getOutNodes(Node node) { Map<Id<Node>, Node> nodes = new TreeMap<>(); for (Link link : node.getOutLinks().values()) { Node outNode = link.getToNode(); nodes.put(outNode.getId(), outNode); } return nodes; }
public static Map<Id<Node>, ? extends Node> getInNodes(Node node) { Map<Id<Node>, Node> nodes = new TreeMap<>(); for (Link link : node.getInLinks().values()) { Node inNode = link.getFromNode(); nodes.put(inNode.getId(), inNode); } return nodes; }
private Map<Id<Node>, ToNode> createToNodes(Link fromLink, Collection<Link> toLinks) { Map<Id<Node>, ToNode> toNodes = Maps.newHashMapWithExpectedSize(toLinks.size()); for (Link toLink : toLinks) { if (toLink != fromLink) { Node toNode = getToNode(toLink); toNodes.putIfAbsent(toNode.getId(), new ToNode(toNode, 0, 0)); } } return toNodes; }
private int getNOfIncidentNodes(final Node node) { HashMap<Id<Node>, Node> nodes = new HashMap<>(); for (Link link : node.getInLinks().values()) { nodes.put(link.getFromNode().getId(), link.getFromNode()); } for (Link link : node.getOutLinks().values()) { nodes.put(link.getToNode().getId(), link.getToNode()); } return nodes.size(); } }
public static Map<Id<Node>, Zone> createNodeToZoneMap(Network network, ZoneFinder zoneFinder) { Map<Id<Node>, Zone> nodeToZone = new HashMap<>(); for (Node n : network.getNodes().values()) { nodeToZone.put(n.getId(), zoneFinder.findZone(n.getCoord())); } return nodeToZone; } }
private SimpleFeature getFeature(Node node) { Point p = MGC.coord2Point(node.getCoord()); try { return this.builder.buildFeature(null, new Object[]{p,node.getId().toString()}); } catch (IllegalArgumentException e) { throw new RuntimeException(e); } }
@Override public Path calcLeastCostPath(final Node fromNode, final Node toNode, final double startTime, final Person person, final Vehicle vehicle) { this.fastRouter.initialize(); this.routingNetwork.initialize(); RoutingNetworkNode routingNetworkFromNode = routingNetwork.getNodes().get(fromNode.getId()); RoutingNetworkNode routingNetworkToNode = routingNetwork.getNodes().get(toNode.getId()); return super.calcLeastCostPath(routingNetworkFromNode, routingNetworkToNode, startTime, person, vehicle); }
@Override public Path calcLeastCostPath(final Node fromNode, final Node toNode, final double startTime, final Person person, final Vehicle vehicle) { this.fastRouter.initialize(); this.routingNetwork.initialize(); RoutingNetworkNode routingNetworkFromNode = this.routingNetwork.getNodes().get(fromNode.getId()); RoutingNetworkNode routingNetworkToNode = this.routingNetwork.getNodes().get(toNode.getId()); return super.calcLeastCostPath(routingNetworkFromNode, routingNetworkToNode, startTime, person, vehicle); }
private void moveToAbort(final MobsimAgent mobsimAgent, final double now, Link currentLink, Link nextLink) { log.error("Agent has no or wrong route! agentId=" + mobsimAgent.getId() + " currentLink=" + currentLink.getId().toString() + " nextLink=" + (nextLink!=null?nextLink.getId():"null") + " currentLinkToNode=" + currentLink.getToNode().getId() + " nextLinkFromNode=" + (nextLink!=null?nextLink.getFromNode().getId():"null") + ". The agent is removed from the simulation."); mobsimAgent.setStateToAbort(now); this.simEngine.internalInterface.arrangeNextAgentState(mobsimAgent); } }
private PathData createPathData(Link fromLink, Link toLink, double startTime, Map<Id<Node>, ToNode> toNodes) { if (toLink == fromLink) { return createZeroPathData(fromLink); } else { ToNode toNode = toNodes.get(getToNode(toLink).getId()); return new PathData(toNode.path, getFirstAndLastLinkTT(fromLink, toLink, toNode.path, startTime)); } }
private Node addNode(Network net, Node n){ Node newNode = net.getFactory().createNode(n.getId(), n.getCoord()); net.addNode(newNode); return newNode; }
public AbstractFeatureType createNodeFeature(final Node n, StyleType networkStyle) { PlacemarkType p = this.kmlObjectFactory.createPlacemarkType(); p.setName(n.getId().toString()); Coord coord = this.coordTransform.transform(n.getCoord()); PointType point = this.kmlObjectFactory.createPointType(); point.getCoordinates().add(Double.toString(coord.getX()) + "," + Double.toString(coord.getY()) + ",0.0"); p.setAbstractGeometryGroup(this.kmlObjectFactory.createPoint(point)); p.setStyleUrl(networkStyle.getId()); p.setDescription(this.createNodeDescription(n)); return p; }
@Test public void testGetNodes_NoLinksBetween() { Fixture f = new Fixture(); Id<Link> startLinkId = f.linkIds[3]; Id<Link> endLinkId = f.linkIds[4]; List<Id<Link>> linkIds = new ArrayList<Id<Link>>(0); NetworkRoute route = RouteUtils.createLinkNetworkRouteImpl(startLinkId, endLinkId); route.setLinkIds(startLinkId, linkIds, endLinkId); List<Node> nodes = RouteUtils.getNodes(route, f.network); Assert.assertEquals(1, nodes.size()); Assert.assertEquals(f.nodeIds[4], nodes.get(0).getId()); }
@Override public void addFromUpstream(QVehicle veh) { double now = context.getSimTimer().getTimeOfDay() ; Id<Link> nextL = veh.getDriver().chooseNextLinkId(); Id<Node> leaveId = toQNode.getNode().getId() ; // e.addFromUpstream( getLink().getFromNode().getId(), leaveId, veh); e.addFromUpstream( veh); em.processEvent(new LinkEnterEvent(now, veh.getId(), getLink().getId())); }