All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opentripplanner.routing.linking.FlexLocationAdder Maven / Gradle / Ivy

The newest version!
package org.opentripplanner.routing.linking;

import java.util.Set;
import org.locationtech.jts.geom.Envelope;
import org.locationtech.jts.geom.Point;
import org.opentripplanner.framework.geometry.GeometryUtils;
import org.opentripplanner.street.model.StreetTraversalPermission;
import org.opentripplanner.street.model.edge.StreetEdge;
import org.opentripplanner.street.model.vertex.IntersectionVertex;
import org.opentripplanner.transit.model.site.AreaStop;
import org.opentripplanner.transit.service.SiteRepository;

class FlexLocationAdder {

  static void addFlexLocations(
    StreetEdge edge,
    IntersectionVertex v0,
    SiteRepository siteRepository
  ) {
    if (edge.getPermission().allows(StreetTraversalPermission.PEDESTRIAN_AND_CAR)) {
      Point p = GeometryUtils.getGeometryFactory().createPoint(v0.getCoordinate());
      Envelope env = p.getEnvelopeInternal();
      for (AreaStop areaStop : siteRepository.findAreaStops(env)) {
        if (!areaStop.getGeometry().disjoint(p)) {
          v0.addAreaStops(Set.of(areaStop));
        }
      }
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy