J'essaie d'exclure un arrêt du routage à travers le code. Je crée gtfs en temps réel d'alerteEst-il possible d'exclure les arrêts du routage via le code dans OpenTripPlanner?
public class ServiceAlertStop {
GtfsRealtime.FeedMessage feedMessage;
public GtfsRealtime.FeedMessage config(){
GtfsRealtime.FeedMessage.Builder feedMessageBuilder =
GtfsRealtime.FeedMessage.newBuilder();
GtfsRealtime.FeedHeader.Builder header =
GtfsRealtime.FeedHeader.newBuilder();
header.setTimestamp(System.currentTimeMillis());
header.setIncrementality(GtfsRealtime.FeedHeader.
Incrementality.FULL_DATASET);
header.setGtfsRealtimeVersion("1.0");
feedMessageBuilder.setHeader(header);
GtfsRealtime.FeedEntity.Builder entity =
GtfsRealtime.FeedEntity.newBuilder();
entity.setId("0");
GtfsRealtime.Alert.Builder alert = GtfsRealtime.Alert.newBuilder();
alert.setCause(GtfsRealtime.Alert.Cause.UNKNOWN_CAUSE);
alert.setEffect(GtfsRealtime.Alert.Effect.STOP_MOVED);
GtfsRealtime.TimeRange.Builder activePeriod =
alert.addActivePeriodBuilder();
activePeriod.setStart(System.currentTimeMillis());
activePeriod.setEnd(System.currentTimeMillis() + 172800000);
GtfsRealtime.TranslatedString.Builder translatedString =
GtfsRealtime.TranslatedString.newBuilder();
GtfsRealtime.TranslatedString.Translation.Builder translation =
GtfsRealtime.TranslatedString.Translation.newBuilder();
translation.setLanguage("en");
translation.setText("Stop is closed!");
translatedString.addTranslation(translation);
alert.setDescriptionText(translatedString);
alert.setHeaderText(translatedString);
GtfsRealtime.EntitySelector.Builder entitySelector =
alert.addInformedEntityBuilder();
entitySelector.setStopId("22126");
entity.setAlert(alert);
feedMessageBuilder.addEntity(entity);
feedMessage = feedMessageBuilder.build();
return feedMessage;
}
public void run(Graph graph){
AlertsUpdateHandler updateHandler = new AlertsUpdateHandler();
updateHandler.setEarlyStart(1);
updateHandler.setFeedId("1");
updateHandler.setAlertPatchService(new AlertPatchServiceImpl(graph));
updateHandler.setFuzzyTripMatcher(new
GtfsRealtimeFuzzyTripMatcher(graph.index));
updateHandler.update(feedMessage);
}
}
représentation ASCII d'une ma alerte
header {
gtfs_realtime_version: "1.0"
incrementality: FULL_DATASET
timestamp: 1493520112381
}
entity {
id: "0"
alert {
active_period {
start: 1493520112415
end: 1493692912415
}
informed_entity {
stop_id: "22126"
}
cause: UNKNOWN_CAUSE
effect: STOP_MOVED
header_text {
translation {
text: "Stop is closed!"
language: "en"
}
}
description_text {
translation {
text: "Stop is closed!"
language: "en"
}
}
}
}
Puis-je charger dans BdP après le graphique est construit, en classe OTPMain.java
ServiceAlertStop serviceAlertStop = new ServiceAlertStop();
serviceAlertStop.config();
serviceAlertStop.run(graphService.getRouter().graph);
Après cela, je ne reçois pas d'erreur, mais quand je commence le voyage de planificateur cet arrêt (22126) existe aussi dans la nouvelle route ((J'ai besoin que otp n'utilise pas cet arrêt.) Est-il possible d'exclure les arrêts de r sortie à travers le code?