Class OsmZoningReaderPlanitData


  • public class OsmZoningReaderPlanitData
    extends Object
    Data specifically required in the zoning reader while parsing OSM data
    Author:
    markr
    • Constructor Detail

      • OsmZoningReaderPlanitData

        public OsmZoningReaderPlanitData()
    • Method Detail

      • initialiseSpatiallyIndexedLinks

        protected void initialiseSpatiallyIndexedLinks​(PlanitOsmNetwork osmNetwork)
        initialise based on links in provided network
        Parameters:
        osmNetwork - to use
      • getIncompleteTransferZoneByOsmId

        public TransferZone getIncompleteTransferZoneByOsmId​(de.topobyte.osm4j.core.model.iface.EntityType entityType,
                                                             long osmEntityId)
        Collect the potentially incomplete transfer zone by entity type and osm id
        Parameters:
        entityType - to collect for (node, way)
        osmEntityId - id (node id/way id)
        Returns:
        transfer zone registered, null if not present
      • getCompleteTransferZoneByOsmId

        public TransferZone getCompleteTransferZoneByOsmId​(de.topobyte.osm4j.core.model.iface.EntityType entityType,
                                                           long osmEntityId)
        Collect the complete transfer zone by entity type and osm id
        Parameters:
        entityType - to collect for (node, way)
        osmEntityId - id (node id/way id)
        Returns:
        transfer zone registered, null if not present
      • getTransferZoneByOsmId

        public TransferZone getTransferZoneByOsmId​(de.topobyte.osm4j.core.model.iface.EntityType type,
                                                   long osmId)
        Find transfer zone either incomplete or complete by osm is
        Parameters:
        type - OSM entity type
        osmId - OSM id of transfer zone
        Returns:
        transfer zone if present as incomplete or complete, null otherwise
      • getTransferZonesByOsmId

        public Collection<TransferZone> getTransferZonesByOsmId​(de.topobyte.osm4j.core.model.iface.EntityType entityType)
                                                         throws PlanItException
        Collect the transfer zones by entity type, unmodifiable
        Parameters:
        entityType - to collect for
        Returns:
        available transfer zones by osm id
        Throws:
        PlanItException - thrown if error
      • getTransferZonesSpatially

        public Collection<TransferZone> getTransferZonesSpatially​(org.locationtech.jts.geom.Envelope boundingBox)
        Collect the transfer zones by spatial bounding box. Collect all created transfer zones that fall within or intersect with this bounding box. They might or might not have connectoids at this point.
        Parameters:
        boundingBox - to identify transfer zones spatially
        Returns:
        list of found transfer zones, caller needs to cast entries to TransferZone type
      • addTransferZoneByOsmId

        public TransferZone addTransferZoneByOsmId​(de.topobyte.osm4j.core.model.iface.EntityType entityType,
                                                   long osmEntityId,
                                                   TransferZone transferZone)
        add a incomplete transfer zone to the tracking container
        Parameters:
        entityType - to register for
        osmEntityId - osm id
        transferZone - the transfer zone
        Returns:
        previous entry in container, if any
      • getDirectedConnectoidsByLocation

        public Map<org.locationtech.jts.geom.Point,​List<DirectedConnectoid>> getDirectedConnectoidsByLocation​(MacroscopicNetworkLayer networkLayer)
        collect the registered connectoids indexed by their locations for a given network layer (unmodifiable)
        Parameters:
        networkLayer - to use
        Returns:
        registered directed connectoids indexed by location
      • getDirectedConnectoidsByLocation

        public List<DirectedConnectoid> getDirectedConnectoidsByLocation​(org.locationtech.jts.geom.Point nodeLocation,
                                                                         MacroscopicNetworkLayer networkLayer)
        Collect the registered connectoids by given locations and network layer (unmodifiable)
        Parameters:
        nodeLocation - to verify
        networkLayer - to extract from
        Returns:
        found connectoids (if any), otherwise null or empty set
      • addDirectedConnectoidByLocation

        public boolean addDirectedConnectoidByLocation​(MacroscopicNetworkLayer networkLayer,
                                                       org.locationtech.jts.geom.Point connectoidLocation,
                                                       DirectedConnectoid connectoid)
        Add a connectoid to the registered connectoids indexed by their OSM id
        Parameters:
        networkLayer - to register for
        connectoidLocation - this connectoid relates to
        connectoid - to add
        Returns:
        true when successful, false otherwise
      • hasAnyDirectedConnectoidsForLocation

        public boolean hasAnyDirectedConnectoidsForLocation​(org.locationtech.jts.geom.Point location)
        Check if any connectoids have been registered for the given location on any layer
        Parameters:
        location - to verify
        Returns:
        true when present, false otherwise
      • hasDirectedConnectoidForLocation

        public boolean hasDirectedConnectoidForLocation​(TransportLayer networkLayer,
                                                        org.locationtech.jts.geom.Point point)
        Check if any connectoid has been registered for the given location for this layer
        Parameters:
        networkLayer - to check for
        point - to use
        Returns:
        true when present, false otherwise
      • addConnectoidByTransferZone

        public void addConnectoidByTransferZone​(TransferZone transferZone,
                                                DirectedConnectoid connectoid)
        Register a known mapping from transfer zone to connectoid
        Parameters:
        transferZone - to map to...
        connectoid - ...this connectoid
      • hasConnectoids

        public boolean hasConnectoids​(TransferZone transferZone)
        Verify if transfer zone has connectoids present
        Parameters:
        transferZone - to check for
        Returns:
        true when there exist connectoids that reference this transfer zone, false otherwise
      • getConnectoidsByTransferZone

        public Collection<DirectedConnectoid> getConnectoidsByTransferZone​(TransferZone transferZone)
        Collect transfer zone's registered connectoids
        Parameters:
        transferZone - to map to...
        Returns:
        connectoids found
      • getTransferZoneGroupByOsmId

        public TransferZoneGroup getTransferZoneGroupByOsmId​(long osmId)
        collect a parsed transfer zone group by OSM id
        Parameters:
        osmId - to use
        Returns:
        transfer zone group
      • addTransferZoneGroupByOsmId

        public TransferZoneGroup addTransferZoneGroupByOsmId​(long osmId,
                                                             TransferZoneGroup transferZoneGroup)
        Add a transfer zone group by its OSM id
        Parameters:
        osmId - to use
        transferZoneGroup - group to add
        Returns:
        group in container location before this one was added, null if none existed
      • reset

        public void reset()
        Reset the PLANit data tracking containers
      • removeLinksFromSpatialLinkIndex

        public void removeLinksFromSpatialLinkIndex​(Collection<Link> links)
        Remove provided links from local spatial index based on links
        Parameters:
        links - to remove
      • addLinksToSpatialLinkIndex

        public void addLinksToSpatialLinkIndex​(Collection<Link> links)
        Add provided links to local spatial index based on their bounding box
        Parameters:
        links - to add
      • findLinksSpatially

        public Collection<Link> findLinksSpatially​(org.locationtech.jts.geom.Envelope searchBoundingBox)
        Find links spatially based on the provided bounding box
        Parameters:
        searchBoundingBox - to use
        Returns:
        links found intersecting or within bounding box provided