Class GeometryBuilder

Object
GeometryBuilder

public class GeometryBuilder extends Object
A builder for Geometry objects. Primarily intended to support fluent programming in test code.

Features include:

  • Both 2D and 3D coordinate dimensions are supported (assuming the provided CoordinateSequenceFactory supports them)
  • Sequences of ordinate values can be supplied in a number of ways
  • Rings do not need to be explicitly closed; a closing point will be supplied if needed
  • Empty geometries of all types can be created
  • Composite geometries are validated to ensure they have a consistent GeometryFactory and coordinate sequence dimension

    Examples of intended usage are:

       GeometryBuilder gb = new GeometryBuilder(geomFact);
       LineString line = gb.linestring(1,2, 3,4);
       Polygon poly = gb.polygon(0,0, 0,1, 1,1, 1,0);
       Polygon box = gb.box(0,0, 1,1);
       Polygon hexagon = gb.circle(0,0, 1,1, 6);
       Polygon polyhole = gb.polygon(gb.linearring(0,0, 0,10, 10,10, 10,0), gb.linearring(1,1, 1,9, 9,9, 9,1))
     
Author:
Martin Davis - OpenGeo
  • Constructor Details

    • GeometryBuilder

      public GeometryBuilder()
      Create a new instance using the default GeometryFactory.
    • GeometryBuilder

      public GeometryBuilder(GeometryFactory geomFact)
      Creates a new instance using a provided GeometryFactory.
      Parameters:
      geomFact - the factory to use
  • Method Details

    • point

      public Point point()
      Creates an empty Point
      Returns:
      an empty Point
    • pointZ

      public Point pointZ()
      Creates an empty Point with coordinate dimension = 3.
      Returns:
      an empty Point
    • point

      public Point point(double x)
      Creates a 1D Point.
      Parameters:
      x - the X ordinate
      Returns:
      a Point
    • point

      public Point point(double x, double y)
      Creates a 2D Point.
      Parameters:
      x - the X ordinate
      y - the Y ordinate
      Returns:
      a Point
    • pointZ

      public Point pointZ(double x, double y, double z)
      Creates a 3D Point.
      Parameters:
      x - the X ordinate
      y - the Y ordinate
      z - the Z ordinate
      Returns:
      a Point
    • lineString

      public LineString lineString()
      Creates an empty 2D LineString
      Returns:
      an empty LineString
    • lineStringZ

      public LineString lineStringZ()
      Creates an empty 3D LineString
      Returns:
      an empty LineString
    • lineString

      public LineString lineString(double... ord)
      Creates a 2D LineString.
      Parameters:
      ord - the XY ordinates
      Returns:
      a LineString
    • lineStringZ

      public LineString lineStringZ(double... ord)
      Creates a 3D LineString.
      Parameters:
      ord - the XYZ ordinates
      Returns:
      a LineString
    • linearRing

      public LinearRing linearRing()
      Creates an empty 2D LinearRing
      Returns:
      an empty LinearRing
    • linearRingZ

      public LinearRing linearRingZ()
      Creates an empty 3D LinearRing
      Returns:
      an empty LinearRing
    • linearRing

      public LinearRing linearRing(double... ord)
      Creates a 2D LinearRing. If the supplied coordinate list is not closed, a closing coordinate is added.
      Returns:
      a LinearRing
    • linearRingZ

      public LinearRing linearRingZ(double... ord)
      Creates a 3D LinearRing. If the supplied coordinate list is not closed, a closing coordinate is added.
      Parameters:
      ord - the XYZ ordinates
      Returns:
      a LinearRing
    • polygon

      public Polygon polygon()
      Creates an empty 2D Polygon.
      Returns:
      an empty Polygon
    • polygonZ

      public Polygon polygonZ()
      Creates an empty 3D Polygon.
      Returns:
      an empty Polygon
    • polygon

      public Polygon polygon(double... ord)
      Creates a Polygon from a list of XY coordinates.
      Parameters:
      ord - a list of XY ordinates
      Returns:
      a Polygon
    • polygonZ

      public Polygon polygonZ(double... ord)
      Creates a Polygon from a list of XYZ coordinates.
      Parameters:
      ord - a list of XYZ ordinates
      Returns:
      a Polygon
    • polygon

      public Polygon polygon(LinearRing shell)
      Creates a Polygon from an exterior ring. The coordinate dimension of the Polygon is the dimension of the LinearRing.
      Parameters:
      shell - the exterior ring
      Returns:
      a Polygon
    • polygon

      public Polygon polygon(LinearRing shell, LinearRing hole)
      Creates a Polygon with a hole from an exterior ring and an interior ring.
      Parameters:
      shell - the exterior ring
      hole - the interior ring
      Returns:
      a Polygon with a hole
    • polygon

      public Polygon polygon(Polygon shell, Polygon hole)
      Creates a Polygon with a hole from an exterior ring and an interior ring supplied by the rings of Polygons.
      Parameters:
      shell - the exterior ring
      hole - the interior ring
      Returns:
      a Polygon with a hole
    • box

      public Polygon box(double x1, double y1, double x2, double y2)
      Creates a rectangular 2D Polygon from X and Y bounds.
      Parameters:
      x1 - the lower X bound
      y1 - the lower Y bound
      x2 - the upper X bound
      y2 - the upper Y bound
      Returns:
      a 2D Polygon
    • boxZ

      public Polygon boxZ(double x1, double y1, double x2, double y2, double z)
      Creates a rectangular 3D Polygon from X and Y bounds.
      Parameters:
      x1 - the lower X bound
      y1 - the lower Y bound
      x2 - the upper X bound
      y2 - the upper Y bound
      z - the Z value for all coordinates
      Returns:
      a 3D Polygon
    • ellipse

      public Polygon ellipse(double x1, double y1, double x2, double y2, int nsides)
      Creates an elliptical Polygon from a bounding box with a given number of sides.
      Returns:
      a 2D Polygon
    • circle

      public Polygon circle(double x, double y, double radius, int nsides)
      Creates a circular Polygon with a given center, radius and number of sides.
      Parameters:
      x - the center X ordinate
      y - the center Y ordinate
      radius - the radius
      nsides - the number of sides
      Returns:
      a 2D Polygon
    • multiPoint

      public MultiPoint multiPoint(double x1, double y1, double x2, double y2)
      Creates a MultiPoint with 2 2D Points.
      Parameters:
      x1 - the X ordinate of the first point
      y1 - the Y ordinate of the first point
      x2 - the X ordinate of the second point
      y2 - the Y ordinate of the second point
      Returns:
      A MultiPoint
    • multiPointZ

      public MultiPoint multiPointZ(double x1, double y1, double z1, double x2, double y2, double z2)
      Creates a MultiPoint with 2 3D Points.
      Parameters:
      x1 - the X ordinate of the first point
      y1 - the Y ordinate of the first point
      z1 - the Z ordinate of the first point
      x2 - the X ordinate of the second point
      y2 - the Y ordinate of the second point
      z2 - the Z ordinate of the second point
      Returns:
      A 3D MultiPoint
    • multiLineString

      public MultiLineString multiLineString(LineString... lines)
      Creates a MultiLineString from a set of LineStrings
      Parameters:
      lines - the component LineStrings
      Returns:
      a MultiLineString
    • multiPolygon

      public MultiPolygon multiPolygon(Polygon... polys)
      Creates a MultiPolygon from a set of Polygons.
      Parameters:
      polys - the component polygons
      Returns:
      A MultiPolygon
    • geometryCollection

      public GeometryCollection geometryCollection(Geometry... geoms)
      Creates a GeometryCollection from a set of Geometrys
      Parameters:
      geoms - the component Geometrys
      Returns:
      a GeometryCollection