}
@Override
public void handleGraphRefresh(GraphService graphService) {
Graph graph = _graphService.getGraph();
GraphContext context = _otpConfigurationService.createGraphContext();
if (graph.getVertices().isEmpty()) {
_log.info("OTP graph is empty, so skipping street-to-stop linking step");
return;
}
NetworkLinkerLibrary linker = new NetworkLinkerLibrary(graph);
int index = 0;
for (StopEntry stop : _transitGraphDao.getAllStops()) {
if (index % 100 == 0)
_log.info("linked stops: " + index);
index++;
/***
* Add street-to-stop edges
****/
WalkToStopVertex walkToStopVertex = new WalkToStopVertex(context, stop);
if (linker.determineIncomingEdgesForVertex(walkToStopVertex, true)) {
GraphVertex gv = graph.getGraphVertex(walkToStopVertex.getLabel());
WaitingBeginsAtStopEdge edge = new WaitingBeginsAtStopEdge(context,
stop, false);
edge.setFromVertex(walkToStopVertex);
gv.addOutgoing(edge);
} else {
_log.warn("error linking stop: " + stop.getId() + " to street network");
}
/****
* Add stop-to-street edges
****/
WalkFromStopVertex walkFromStopVertex = new WalkFromStopVertex(context,
stop);
if (linker.determineOutgoingEdgesForVertex(walkFromStopVertex, true)) {
GraphVertex gv = graph.getGraphVertex(walkFromStopVertex.getLabel());
WaitingEndsAtStopEdge edge = new WaitingEndsAtStopEdge(context, stop,
true);
edge.setToVertex(walkFromStopVertex);
gv.addIncoming(edge);
} else {