@Override public TransitRouteStop getStop(final TransitStopFacility stop) { for (TransitRouteStop trStop : this.stops) { if (stop == trStop.getStopFacility()) { return trStop; } } return null; }
@Override public final TransitStopFacility getNextTransitStop() { if (this.nextStop == null) { return null; } return this.nextStop.getStopFacility(); }
private void assertExpectedStop(final TransitStopFacility stop) { if (stop != this.nextStop.getStopFacility()) { throw new RuntimeException("Expected different stop."); } }
@Override public Coord getCoord() { return this.stop.getStopFacility().getCoord(); }
@Override public Coord getCoord() { return this.stop.getStopFacility().getCoord(); }
final Set<Id<TransitStopFacility>> getStopsUsed(Collection<TransitRoute> routes) { Set<Id<TransitStopFacility>> stopsUsed = new TreeSet<>(); for (TransitRoute route : routes) { for (TransitRouteStop stop : route.getStops()) { stopsUsed.add(stop.getStopFacility().getId()); } } return stopsUsed; }
public TransitRouterNetworkLink(final Id<Link> id, final TransitRouterNetworkNode fromNode, final TransitRouterNetworkNode toNode, final TransitRoute route, final TransitLine line) { this(id, fromNode, toNode, route, line, CoordUtils.calcEuclideanDistance(toNode.stop.getStopFacility().getCoord(), fromNode.stop.getStopFacility().getCoord())); }
private void assertAllStopsServed() { if (this.nextStop != null) { RuntimeException e = new RuntimeException("Transit vehicle is not yet at last stop! vehicle-id = " + this.vehicle.getVehicle().getId() + "; next-stop = " + this.nextStop.getStopFacility().getId()); log.error(e); throw e; } }
private static String getHash(TransitLine transitLine, TransitRoute transitRoute, TransitRouteStop transitRouteStop, int position){ return transitLine.getId().toString() + "-" + transitRoute.getId().toString() + "-" + transitRouteStop.getStopFacility().getId().toString() + "-" + position; } }
@SuppressWarnings("static-method") private final boolean containsId(List<TransitRouteStop> stopsToCome, Id<TransitStopFacility> egressStopId) { for (TransitRouteStop stop : stopsToCome) { if (egressStopId.equals(stop.getStopFacility().getId())) { return true; } } return false; }
private boolean containsId(List<TransitRouteStop> stopsToCome, Id<TransitStopFacility> egressStopId) { for (TransitRouteStop stop : stopsToCome) { if (egressStopId.equals(stop.getStopFacility().getId())) { return true; } } return false; }
public TransitRouterNetworkNode createNode(final TransitRouteStop stop, final TransitRoute route, final TransitLine line) { Id<Node> id = null; if(line==null && route==null) id = Id.createNodeId(stop.getStopFacility().getId().toString()); else id = Id.createNodeId("number:"+nextNodeId++); final TransitRouterNetworkNode node = new TransitRouterNetworkNode(id, stop, route, line); if(this.nodes.get(node.getId())!=null) throw new RuntimeException(); this.nodes.put(node.getId(), node); return node; }
public VehicleOccupancyCalculator(final TransitSchedule transitSchedule, final Vehicles vehicles, final int timeSlot, final int totalTime) { this.timeSlot = timeSlot; for(TransitLine line:transitSchedule.getTransitLines().values()) for(TransitRoute route:line.getRoutes().values()) { Map<Id<TransitStopFacility>, VehicleOccupancyData> routeMap = new HashMap<Id<TransitStopFacility>, VehicleOccupancyData>(100); vehicleOccupancy.put(new Tuple<Id<TransitLine>, Id<TransitRoute>>(line.getId(), route.getId()), routeMap); for(int s=0; s<route.getStops().size()-1; s++) { routeMap.put(route.getStops().get(s).getStopFacility().getId(), new VehicleOccupancyDataArray((int) (totalTime/timeSlot)+1)); } } this.vehicles = vehicles; }
public static ValidationResult validateUsedStopsHaveLinkId(final TransitSchedule schedule) { ValidationResult result = new ValidationResult(); for (TransitLine line : schedule.getTransitLines().values()) { for (TransitRoute route : line.getRoutes().values()) { for (TransitRouteStop stop : route.getStops()) { Id<Link> linkId = stop.getStopFacility().getLinkId(); if (linkId == null) { result.addIssue(new ValidationResult.ValidationIssue(ValidationResult.Severity.ERROR,"Transit Stop Facility " + stop.getStopFacility().getId() + " has no linkId, but is used by transit line " + line.getId() + ", route " + route.getId(), ValidationResult.Type.HAS_NO_LINK_REF, Collections.singleton(stop.getStopFacility().getId()))); } } } } return result; }
private double getDepartureOffsetFromRoute(TransitRoute transitRoute, Id<TransitStopFacility> accessStopId) { for (TransitRouteStop routeStop : transitRoute.getStops()) { if (accessStopId.equals(routeStop.getStopFacility().getId())) { return routeStop.getDepartureOffset(); } } log.error("Stop " + accessStopId + " not found in route " + transitRoute.getId()); // returning what??? return -1.0; }
private double getArrivalOffsetFromRoute(TransitRoute transitRoute, Id<TransitStopFacility> egressStopId) { for (TransitRouteStop routeStop : transitRoute.getStops()) { if (egressStopId.equals(routeStop.getStopFacility().getId())) { return routeStop.getArrivalOffset(); } } log.error("Stop " + egressStopId + " not found in route " + transitRoute.getId()); // returning what??? return -1.0; }
@Override public String toString() { return "[" + ((TransitRouterNetworkNode) link.getFromNode()).getStop().getStopFacility().getId() + ">" + ((TransitRouterNetworkNode) link.getToNode()).getStop().getStopFacility().getId() + " @ " + time + "]"; } }
public void testStopFacility() { TransitStopFacility stopFacility1 = new TransitStopFacilityImpl(Id.create(1, TransitStopFacility.class), new Coord((double) 2, (double) 3), false); TransitStopFacility stopFacility2 = new TransitStopFacilityImpl(Id.create(2, TransitStopFacility.class), new Coord((double) 3, (double) 4), false); double arrivalDelay = 4; double departureDelay = 5; TransitRouteStop routeStop = createTransitRouteStop(stopFacility1, arrivalDelay, departureDelay); assertEquals(stopFacility1, routeStop.getStopFacility()); routeStop.setStopFacility(stopFacility2); assertEquals(stopFacility2, routeStop.getStopFacility()); }
public void testInitialization() { TransitStopFacility stopFacility = new TransitStopFacilityImpl(Id.create(1, TransitStopFacility.class), new Coord((double) 2, (double) 3), false); double arrivalDelay = 4; double departureDelay = 5; TransitRouteStop routeStop = createTransitRouteStop(stopFacility, arrivalDelay, departureDelay); assertEquals(stopFacility, routeStop.getStopFacility()); assertEquals(arrivalDelay, routeStop.getArrivalOffset(), EPSILON); assertEquals(departureDelay, routeStop.getDepartureOffset(), EPSILON); }
@Test public void testCreateTransitRouteStop() { TransitScheduleFactory builder = createTransitScheduleBuilder(); TransitStopFacility stopFacility = new TransitStopFacilityImpl(Id.create(5, TransitStopFacility.class), new Coord((double) 6, (double) 6), false); double arrivalOffset = 23; double departureOffset = 42; TransitRouteStop stop = builder.createTransitRouteStop(stopFacility, 23, 42); Assert.assertEquals(stopFacility, stop.getStopFacility()); Assert.assertEquals(arrivalOffset, stop.getArrivalOffset(), MatsimTestUtils.EPSILON); Assert.assertEquals(departureOffset, stop.getDepartureOffset(), MatsimTestUtils.EPSILON); }