Exemplo n.º 1
0
 /**
  * Create and add to schedule new stops with the id-endings "_1" to "_numberOfCopies" by copying
  * the provided stopFacility.
  *
  * @param stopFacility which will be copied. The original becomes the first element of the
  *     returned array.
  * @param numberOfCopies of stopFacility which are created.
  * @return TransitStopFacilities stopFacility, and copies stop_1 to stop_numberOfCopies
  */
 private TransitStopFacility[] multiplyStop(TransitStopFacility stopFacility, int numberOfCopies) {
   TransitStopFacility[] facilities = new TransitStopFacility[numberOfCopies + 1];
   facilities[0] = stopFacility;
   for (int i = 1; i <= numberOfCopies; i++) {
     // Copy facility at stopFacility:
     Id<TransitStopFacility> idNewFacility =
         Id.create(stopFacility.getId().toString() + "_" + i, TransitStopFacility.class);
     TransitStopFacility newFacility =
         this.scheduleFactory.createTransitStopFacility(
             idNewFacility, stopFacility.getCoord(), stopFacility.getIsBlockingLane());
     newFacility.setName(stopFacility.getName());
     // Add new facility to schedule and to array:
     facilities[i] = newFacility;
   }
   return facilities;
 }
Exemplo n.º 2
0
 private void setConnectedStopFacilitiesToIsBlocking() {
   Set<TransitStopFacility> facilitiesToExchange = new HashSet<>();
   for (TransitStopFacility oldFacility : this.schedule.getFacilities().values()) {
     if (this.network
         .getLinks()
         .get(oldFacility.getLinkId())
         .getAllowedModes()
         .contains(TransportMode.car)) {
       TransitStopFacility newFacility =
           this.scheduleFactory.createTransitStopFacility(
               oldFacility.getId(), oldFacility.getCoord(), true);
       newFacility.setName(oldFacility.getName());
       newFacility.setLinkId(oldFacility.getLinkId());
       newFacility.setStopPostAreaId(oldFacility.getStopPostAreaId());
       facilitiesToExchange.add(newFacility);
     }
   }
   for (TransitStopFacility facility : facilitiesToExchange) {
     TransitStopFacility facilityToRemove = this.schedule.getFacilities().get(facility.getId());
     this.schedule.removeStopFacility(facilityToRemove);
     this.schedule.addStopFacility(facility);
   }
 }
  private final void convertStations(OTTDataContainer dataContainer, Network infraNetwork) {
    TransitScheduleFactory factory = scenario.getTransitSchedule().getFactory();

    // get station ids
    Set<Id> stationIds = new HashSet<Id>();
    for (Locomotive locomotive : dataContainer.locomotives.values()) {
      for (StationData stationData : locomotive.trips.values()) {
        stationIds.add(stationData.stationId);
      }
    }

    for (Id stationId : stationIds) {
      Node node = infraNetwork.getNodes().get(stationId);
      if (node != null) {
        TransitStopFacility stopFacility =
            factory.createTransitStopFacility(stationId, node.getCoord(), false);
        stopFacility.setName(node.getId().toString());
        scenario.getTransitSchedule().addStopFacility(stopFacility);
      } else {
        throw new RuntimeException(
            "node id=" + stationId.toString() + " not found in the network. Bailing out.");
      }
    }
  }