public static void resetRoutes(final Plan plan) { // loop over all <leg>s, remove route-information // routing is done after location choice for (PlanElement pe : plan.getPlanElements()) { if (pe instanceof Leg) { ((Leg) pe).setRoute(null); } } } }
@Override public void run(Plan plan) { for (PlanElement planElement : plan.getPlanElements()) { if (planElement instanceof Leg) { Leg leg = (Leg) planElement; if (modesToDrop.contains(leg.getMode())) { leg.setRoute(null); } } } }
@Override public void run(final Plan plan) { for (PlanElement pe : plan.getPlanElements()) { if (pe instanceof Activity) { ((Activity) pe).setLinkId(null); } else if (pe instanceof Leg) { ((Leg) pe).setRoute(null); } } } }
private void startRoute(final Attributes atts) { this.currroute = this.plans.getFactory().getRouteFactories().createRoute(NetworkRoute.class, this.prevAct.getLinkId(), this.prevAct.getLinkId()); this.currleg.setRoute(this.currroute); if (atts.getValue("dist") != null) { this.currroute.setDistance(Double.parseDouble(atts.getValue("dist"))); } if (atts.getValue("trav_time") != null) { this.currroute.setTravelTime(Time.parseTime(atts.getValue("trav_time"))); } }
protected final List<Leg> createDirectWalkLegList(Person person, Coord fromCoord, Coord toCoord) { List<Leg> legs = new ArrayList<>(); Leg leg = PopulationUtils.createLeg(TransportMode.transit_walk); double walkTime = getWalkTime(person, fromCoord, toCoord); leg.setTravelTime(walkTime); Route walkRoute = RouteUtils.createGenericRouteImpl(null, null); walkRoute.setTravelTime(walkTime); leg.setRoute(walkRoute); legs.add(leg); return legs; }
@Override public List<? extends PlanElement> calcRoute( final Facility fromFacility, final Facility toFacility, final double departureTime, final Person person) { Leg l = popFactory.createLeg( modeName ); l.setDepartureTime( departureTime ); Route r = new PassengerRoute( fromFacility.getLinkId() , toFacility.getLinkId() ); l.setRoute( r ); return Collections.singletonList( l ); }
protected Leg createLeg(DriveTask task) { Leg leg = populFactory.createLeg(TransportMode.car); leg.setRoute(VrpPaths.createNetworkRoute(task.getPath(), populFactory.getRouteFactories())); return leg; }
public Leg getLeg() { Leg leg = PopulationUtils.createLeg(mode); leg.setDepartureTime(departureTime); leg.setTravelTime(travelTime); leg.setRoute(route == null ? null : route.getRoute(mode)); return leg; } }
private static void unregisterPassengerFromDriverRoutes( final JointTrip toRemove) { for (Leg driverLeg : toRemove.getDriverLegs()) { final DriverRoute route = (DriverRoute) driverLeg.getRoute(); route.removePassenger( toRemove.getPassengerId() ); if ( route.getPassengersIds().isEmpty() ) { driverLeg.setMode( TransportMode.car ); driverLeg.setRoute( null ); } } } }
private void startRoute() { this.currroute = this.plans.getFactory().getRouteFactories().createRoute(NetworkRoute.class, this.prevAct.getLinkId(), this.prevAct.getLinkId()); this.currleg.setRoute(this.currroute); }
private void processAllocation(final List<SubtourRecord> vehicularTours) { for ( final SubtourRecord r : vehicularTours ) { for ( final Trip t : r.subtour.getTrips() ) { for ( final Leg leg : t.getLegsOnly() ) { if ( !vehicularModes.contains( leg.getMode() ) ) continue; if ( allowNullRoutes && leg.getRoute() == null ) { // this is not so nice... leg.setRoute( new VehicleOnlyNetworkRoute() ); } if ( !( leg.getRoute() instanceof NetworkRoute ) ) { throw new RuntimeException( "route for mode "+leg.getMode()+" has non-network route "+leg.getRoute() ); } ((NetworkRoute) leg.getRoute()).setVehicleId( r.allocatedVehicle ); } } } }
public void addTrip(NetworkRoute networkRoute, String transportMode) { Activity lastActivity; if (!plan.getPlanElements().isEmpty()) { lastActivity = (Activity) plan.getPlanElements().get(plan.getPlanElements().size()-1); assert lastActivity.getLinkId().equals(networkRoute.getStartLinkId()); } else { lastActivity = PopulationUtils.createActivityFromLinkId(activityType, networkRoute.getStartLinkId()); plan.addActivity(lastActivity); } Leg leg = PopulationUtils.createLeg(transportMode); leg.setRoute(networkRoute); plan.addLeg(leg); Activity activity = PopulationUtils.createActivityFromLinkId(activityType, networkRoute.getEndLinkId()); plan.addActivity(activity); }
private Leg createTransitLeg(RouteSegment routeSegment) { Leg leg = PopulationUtils.createLeg(TransportMode.pt); TransitStopFacility accessStop = routeSegment.getFromStop(); TransitStopFacility egressStop = routeSegment.getToStop(); ExperimentalTransitRoute ptRoute = new ExperimentalTransitRoute(accessStop, egressStop, routeSegment.getLineTaken(), routeSegment.getRouteTaken()); ptRoute.setTravelTime(routeSegment.travelTime); leg.setRoute(ptRoute); leg.setTravelTime(routeSegment.getTravelTime()); return leg; }
private Leg createAccessTransitWalkLeg(Coord fromCoord, RouteSegment routeSegement) { Leg leg = this.createTransitWalkLeg(fromCoord, routeSegement.fromStop.getCoord()); Route walkRoute = RouteUtils.createGenericRouteImpl(null, routeSegement.fromStop.getLinkId()); walkRoute.setTravelTime(leg.getTravelTime() ); walkRoute.setDistance(trConfig.getBeelineDistanceFactor() * NetworkUtils.getEuclideanDistance(fromCoord, routeSegement.fromStop.getCoord())); leg.setRoute(walkRoute); return leg; }
public static void copyFromTo(Leg in, Leg out) { out.setMode( in.getMode() ); out.setDepartureTime(in.getDepartureTime()); out.setTravelTime(in.getTravelTime()); if (in.getRoute() != null) { out.setRoute(in.getRoute().clone()); } AttributesUtils.copyAttributesFromTo( in , out ); }
private Leg createEgressTransitWalkLeg(RouteSegment routeSegement, Coord toCoord) { Leg leg = this.createTransitWalkLeg(routeSegement.toStop.getCoord(), toCoord); Route walkRoute = RouteUtils.createGenericRouteImpl(routeSegement.toStop.getLinkId(), null); walkRoute.setTravelTime(leg.getTravelTime() ); walkRoute.setDistance(trConfig.getBeelineDistanceFactor() * NetworkUtils.getEuclideanDistance(routeSegement.toStop.getCoord(), toCoord)); leg.setRoute(walkRoute); return leg; }
@Override public List<? extends PlanElement> calcRoute(Facility fromFacility, Facility toFacility, double departureTime, Person person) { Leg newLeg = scenario.getPopulation().getFactory().createLeg( TransportMode.pt ); Id<Link> startLinkId = fromFacility.getLinkId(); Id<Link> endLinkId = toFacility.getLinkId(); newLeg.setDepartureTime( departureTime ); double travelTime = this.ptMatrix.getTotalTravelTime_seconds(fromFacility.getCoord(), toFacility.getCoord()); newLeg.setTravelTime( travelTime ); final Route route = genericRouteFactory.createRoute(startLinkId, endLinkId); double distance = this.ptMatrix.getTotalTravelDistance_meter(fromFacility.getCoord(), toFacility.getCoord()) ; route.setDistance(distance) ; newLeg.setRoute(route); return Arrays.asList( newLeg ); }
private static Person createPerson(Id<Person> personId, MutableScenario scenario, Link link1, Link link2) { final Id<Person> id = personId; Person p = PopulationUtils.getFactory().createPerson(id); Plan plan = PersonUtils.createAndAddPlan(p, true); PopulationUtils.createAndAddActivityFromLinkId(plan, "h", link1.getId()); Leg leg = PopulationUtils.createAndAddLeg( plan, TransportMode.car ); NetworkRoute route = ((PopulationFactory) scenario.getPopulation().getFactory()).getRouteFactories().createRoute(NetworkRoute.class, link1.getId(), link2.getId()); leg.setRoute(route); route.setLinkIds(link1.getId(), null, link2.getId()); leg.setRoute(route); PopulationUtils.createAndAddActivityFromLinkId(plan, "w", link2.getId()); return p; }
private Leg createTransferTransitWalkLeg(RouteSegment routeSegement) { Leg leg = this.createTransitWalkLeg(routeSegement.getFromStop().getCoord(), routeSegement.getToStop().getCoord()); Route walkRoute = RouteUtils.createGenericRouteImpl(routeSegement.getFromStop().getLinkId(), routeSegement.getToStop().getLinkId()); // walkRoute.setTravelTime(leg.getTravelTime() ); // transit walk leg should include additional transfer time; Amit, Aug'17 leg.setTravelTime( getTransferTime(null, routeSegement.getFromStop().getCoord(), routeSegement.getToStop().getCoord()) ); walkRoute.setTravelTime(getTransferTime(null, routeSegement.getFromStop().getCoord(), routeSegement.getToStop().getCoord()) ); walkRoute.setDistance(trConfig.getBeelineDistanceFactor() * NetworkUtils.getEuclideanDistance(routeSegement.fromStop.getCoord(), routeSegement.toStop.getCoord())); leg.setRoute(walkRoute); return leg; }
private Person createPerson2(Id<Person> personId, Fixture f) { final Id<Person> id = personId; Person p = PopulationUtils.getFactory().createPerson(id); Plan plan = PopulationUtils.createPlan(); p.addPlan(plan); plan.addActivity(PopulationUtils.createActivityFromLinkId("home", f.link1.getId())); Leg leg = PopulationUtils.createLeg(TransportMode.car); NetworkRoute route = RouteUtils.createLinkNetworkRouteImpl(f.link1.getId(), f.link2.getId()); route.setVehicleId(f.basicVehicle.getId()); leg.setRoute(route); plan.addLeg(leg); plan.addActivity(PopulationUtils.createActivityFromLinkId("work", f.link2.getId())); return p; }