Class PointLocator

java.lang.Object
org.locationtech.jts.algorithm.PointLocator

public class PointLocator extends Object
Computes the topological (Location) of a single point to a Geometry. A BoundaryNodeRule may be specified to control the evaluation of whether the point lies on the boundary or not The default rule is to use the the SFS Boundary Determination Rule

Notes:

  • LinearRings do not enclose any area - points inside the ring are still in the EXTERIOR of the ring.
Instances of this class are not reentrant.
Version:
1.7
  • Field Details

    • boundaryRule

      private BoundaryNodeRule boundaryRule
    • isIn

      private boolean isIn
    • numBoundaries

      private int numBoundaries
  • Constructor Details

    • PointLocator

      public PointLocator()
    • PointLocator

      public PointLocator(BoundaryNodeRule boundaryRule)
  • Method Details

    • intersects

      public boolean intersects(Coordinate p, Geometry geom)
      Convenience method to test a point for intersection with a Geometry
      Parameters:
      p - the coordinate to test
      geom - the Geometry to test
      Returns:
      true if the point is in the interior or boundary of the Geometry
    • locate

      public int locate(Coordinate p, Geometry geom)
      Computes the topological relationship (Location) of a single point to a Geometry. It handles both single-element and multi-element Geometries. The algorithm for multi-part Geometries takes into account the SFS Boundary Determination Rule.
      Returns:
      the Location of the point relative to the input Geometry
    • computeLocation

      private void computeLocation(Coordinate p, Geometry geom)
    • updateLocationInfo

      private void updateLocationInfo(int loc)
    • locateOnPoint

      private int locateOnPoint(Coordinate p, Point pt)
    • locateOnLineString

      private int locateOnLineString(Coordinate p, LineString l)
    • locateInPolygonRing

      private int locateInPolygonRing(Coordinate p, LinearRing ring)
    • locateInPolygon

      private int locateInPolygon(Coordinate p, Polygon poly)