private Map<Node, InitialNode> locateWrappedNearestTransitNodes(Person person, Coord coord, double departureTime) {
Collection<TransitRouterNetwork.TransitRouterNetworkNode> nearestNodes = getTransitRouterNetwork().getNearestNodes(
coord,
this.getConfig().getSearchRadius());
if (nearestNodes.size() < 2) {
TransitRouterNetwork.TransitRouterNetworkNode nearestNode = this.getTransitRouterNetwork()
.getNearestNode(coord);
if (nearestNode != null) {
double distance = CoordUtils.calcEuclideanDistance(coord,
nearestNode.stop.getStopFacility().getCoord());
nearestNodes = this.getTransitRouterNetwork()
.getNearestNodes(coord, distance + this.getConfig().getExtensionRadius());
}
}
Map<Node, InitialNode> wrappedNearestNodes = new LinkedHashMap<>();
for (TransitRouterNetwork.TransitRouterNetworkNode node : nearestNodes) {
Coord toCoord = node.stop.getStopFacility().getCoord();
double initialTime = getWalkTime(person, coord, toCoord);
double initialCost = getWalkDisutility(person, coord, toCoord);
wrappedNearestNodes.put(node, new InitialNode(initialCost, initialTime + departureTime));
}
return wrappedNearestNodes;
}