21 package org.matsim.pt.utils;
23 import java.util.ArrayList;
24 import java.util.Collections;
25 import java.util.HashMap;
26 import java.util.LinkedList;
27 import java.util.List;
66 private final Map<Tuple<Node, Node>,
Link>
links =
new HashMap<Tuple<Node, Node>,
Link>();
68 private final Map<TransitStopFacility, Node>
nodes =
new HashMap<TransitStopFacility, Node>();
69 private final Map<TransitStopFacility, List<TransitStopFacility>>
facilityCopies =
new HashMap<TransitStopFacility, List<TransitStopFacility>>();
78 this.prefix = networkIdPrefix;
79 this.linkFreeSpeed = 100.0 / 3.6;
80 this.linkCapacity = 100000.0;
84 final double linkFreeSpeed,
final double linkCapacity) {
87 this.prefix = networkIdPrefix;
94 List<Tuple<TransitLine, TransitRoute>> toBeRemoved =
new LinkedList<Tuple<TransitLine, TransitRoute>>();
98 ArrayList<Id<Link>> routeLinks =
new ArrayList<Id<Link>>();
102 routeLinks.add(link.
getId());
106 if (routeLinks.size() > 0) {
108 tRoute.setRoute(route);
110 System.err.println(
"Line " + tLine.getId() +
" route " + tRoute.getId() +
" has less than two stops. Removing this route from schedule.");
117 remove.getFirst().removeRoute(
remove.getSecond());
125 Node fromNode = this.nodes.get(fromFacility);
126 if (fromNode == null) {
128 this.network.
addNode(fromNode);
129 this.nodes.put(toFacility, fromNode);
132 Node toNode = this.nodes.get(toFacility);
133 if (toNode == null) {
136 this.nodes.put(toFacility, toNode);
140 Link link = this.links.get(connection);
146 this.stopFacilities.put(connection, toFacility);
148 List<TransitStopFacility> copies = this.facilityCopies.get(toFacility);
149 if (copies == null) {
150 copies =
new ArrayList<TransitStopFacility>();
151 this.facilityCopies.put(toFacility, copies);
165 copies.add(newFacility);
166 this.nodes.put(newFacility, toNode);
169 this.stopFacilities.put(connection, newFacility);
181 if (fromNode == toNode) {
191 this.links.put(connection, link);
196 Node fromNode = this.nodes.get(fromStop);
197 Node toNode = this.nodes.get(toStop);
199 return this.links.get(connection);
void setNumberOfLanes(double lanes)
final double linkCapacity
void setFreespeed(double freespeed)
static double calcEuclideanDistance(Coord coord, Coord other)
final Map< Tuple< Node, Node >, TransitStopFacility > stopFacilities
void setStopAreaId(Id< TransitStopArea > stopAreaId)
final double linkFreeSpeed
abstract void setStopFacility(final TransitStopFacility stopFacility)
final Map< TransitStopFacility, List< TransitStopFacility > > facilityCopies
final TransitSchedule schedule
TransitScheduleFactory getFactory()
Link createAndAddLink(Node fromNode, Node toNode, Tuple< Node, Node > connection)
final Map< Tuple< Node, Node >, Link > links
final Set< String > transitModes
NetworkFactory getFactory()
Link getLinkBetweenStops(final TransitStopFacility fromStop, final TransitStopFacility toStop)
static< T > Id< T > create(final long key, final Class< T > type)
final Map< TransitStopFacility, Node > nodes
CreatePseudoNetwork(final TransitSchedule schedule, final Network network, final String networkIdPrefix, final double linkFreeSpeed, final double linkCapacity)
Link createLink(final Id< Link > id, final Node fromNode, final Node toNode)
Id< TransitStopArea > getStopAreaId()
void setLength(double length)
static NetworkRoute createNetworkRoute(List< Id< Link >> routeLinkIds, Network network)
void setName(final String name)
Link getNetworkLink(final TransitRouteStop fromStop, final TransitRouteStop toStop)
abstract TransitStopFacility getStopFacility()
Node createNode(final Id< Node > id, final Coord coord)
abstract TransitStopFacility createTransitStopFacility(final Id< TransitStopFacility > facilityId, final Coord coordinate, final boolean blocksLane)
CreatePseudoNetwork(final TransitSchedule schedule, final Network network, final String networkIdPrefix)
void setAllowedModes(Set< String > modes)
void addStopFacility(final TransitStopFacility stop)
Map< Id< TransitLine >, TransitLine > getTransitLines()
boolean getIsBlockingLane()
void setLinkId(final Id< Link > linkId)
void setCapacity(double capacity)