Package org.locationtech.jts.geom
Class GeometryFactory
java.lang.Object
org.locationtech.jts.geom.GeometryFactory
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
FixingGeometryFactory
Supplies a set of utility methods for building Geometry objects from lists
of Coordinates.
Note that the factory constructor methods do not change the input coordinates in any way. In particular, they are not rounded to the supplied PrecisionModel. It is assumed that input Coordinates meet the given precision.
- Version:
- 1.7
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate CoordinateSequenceFactoryprivate PrecisionModelprivate static final longprivate int -
Constructor Summary
ConstructorsConstructorDescriptionConstructs a GeometryFactory that generates Geometries having a floating PrecisionModel and a spatial-reference ID of 0.GeometryFactory(CoordinateSequenceFactory coordinateSequenceFactory) Constructs a GeometryFactory that generates Geometries having the given CoordinateSequence implementation, a double-precision floating PrecisionModel and a spatial-reference ID of 0.GeometryFactory(PrecisionModel precisionModel) Constructs a GeometryFactory that generates Geometries having the givenPrecisionModeland the default CoordinateSequence implementation.GeometryFactory(PrecisionModel precisionModel, int SRID) Constructs a GeometryFactory that generates Geometries having the givenPrecisionModeland spatial-reference ID, and the default CoordinateSequence implementation.GeometryFactory(PrecisionModel precisionModel, int SRID, CoordinateSequenceFactory coordinateSequenceFactory) Constructs a GeometryFactory that generates Geometries having the given PrecisionModel, spatial-reference ID, and CoordinateSequence implementation. -
Method Summary
Modifier and TypeMethodDescriptionbuildGeometry(Collection geomList) Build an appropriateGeometry,MultiGeometry, orGeometryCollectionto contain theGeometrys in it.Creates a deep copy of the inputGeometry.createGeometryCollection(Geometry[] geometries) Creates a GeometryCollection using the given Geometries; a null or empty array will create an empty GeometryCollection.createLinearRing(Coordinate[] coordinates) Creates aLinearRingusing the givenCoordinates.createLinearRing(CoordinateSequence coordinates) Creates aLinearRingusing the givenCoordinateSequence.createLineString(Coordinate[] coordinates) Creates a LineString using the given Coordinates.createLineString(CoordinateSequence coordinates) Creates a LineString using the given CoordinateSequence.createMultiLineString(LineString[] lineStrings) Creates a MultiLineString using the given LineStrings; a null or empty array will create an empty MultiLineString.createMultiPoint(Coordinate[] coordinates) Deprecated.createMultiPoint(CoordinateSequence coordinates) Creates aMultiPointusing the points in the givenCoordinateSequence.createMultiPoint(Point[] point) Creates aMultiPointusing the givenPoints.createMultiPointFromCoords(Coordinate[] coordinates) Creates aMultiPointusing the givenCoordinates.createMultiPolygon(Polygon[] polygons) Creates a MultiPolygon using the given Polygons; a null or empty array will create an empty Polygon.createPoint(Coordinate coordinate) Creates a Point using the given Coordinate.createPoint(CoordinateSequence coordinates) Creates a Point using the given CoordinateSequence; a null or empty CoordinateSequence will create an empty Point.static PointcreatePointFromInternalCoord(Coordinate coord, Geometry exemplar) createPolygon(Coordinate[] shell) Constructs aPolygonwith the given exterior boundary.createPolygon(CoordinateSequence shell) Constructs aPolygonwith the given exterior boundary.createPolygon(LinearRing shell) Constructs aPolygonwith the given exterior boundary.createPolygon(LinearRing shell, LinearRing[] holes) Constructs aPolygonwith the given exterior boundary and interior boundaries.private static CoordinateSequenceFactoryReturns the PrecisionModel that Geometries created by this factory will be associated with.intgetSRID()Gets the SRID value defined for this factory.toGeometry(Envelope envelope) Creates aGeometrywith the same extent as the given envelope.static Geometry[]toGeometryArray(Collection geometries) Converts theListto an array.static LinearRing[]toLinearRingArray(Collection linearRings) Converts theListto an array.static LineString[]toLineStringArray(Collection lineStrings) Converts theListto an array.static MultiLineString[]toMultiLineStringArray(Collection multiLineStrings) Converts theListto an array.static MultiPoint[]toMultiPointArray(Collection multiPoints) Converts theListto an array.static MultiPolygon[]toMultiPolygonArray(Collection multiPolygons) Converts theListto an array.static Point[]toPointArray(Collection points) Converts theListto an array.static Polygon[]toPolygonArray(Collection polygons) Converts theListto an array.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
precisionModel
-
coordinateSequenceFactory
-
SRID
private int SRID
-
-
Constructor Details
-
GeometryFactory
public GeometryFactory(PrecisionModel precisionModel, int SRID, CoordinateSequenceFactory coordinateSequenceFactory) Constructs a GeometryFactory that generates Geometries having the given PrecisionModel, spatial-reference ID, and CoordinateSequence implementation. -
GeometryFactory
Constructs a GeometryFactory that generates Geometries having the given CoordinateSequence implementation, a double-precision floating PrecisionModel and a spatial-reference ID of 0. -
GeometryFactory
Constructs a GeometryFactory that generates Geometries having the givenPrecisionModeland the default CoordinateSequence implementation.- Parameters:
precisionModel- the PrecisionModel to use
-
GeometryFactory
Constructs a GeometryFactory that generates Geometries having the givenPrecisionModeland spatial-reference ID, and the default CoordinateSequence implementation.- Parameters:
precisionModel- the PrecisionModel to useSRID- the SRID to use
-
GeometryFactory
public GeometryFactory()Constructs a GeometryFactory that generates Geometries having a floating PrecisionModel and a spatial-reference ID of 0.
-
-
Method Details
-
createPointFromInternalCoord
-
getDefaultCoordinateSequenceFactory
-
toPointArray
Converts theListto an array.- Parameters:
points- theListof Points to convert- Returns:
- the
Listin array format
-
toGeometryArray
Converts theListto an array.- Parameters:
geometries- the list ofGeometry'sto convert- Returns:
- the
Listin array format
-
toLinearRingArray
Converts theListto an array.- Parameters:
linearRings- theListof LinearRings to convert- Returns:
- the
Listin array format
-
toLineStringArray
Converts theListto an array.- Parameters:
lineStrings- theListof LineStrings to convert- Returns:
- the
Listin array format
-
toPolygonArray
Converts theListto an array.- Parameters:
polygons- theListof Polygons to convert- Returns:
- the
Listin array format
-
toMultiPolygonArray
Converts theListto an array.- Parameters:
multiPolygons- theListof MultiPolygons to convert- Returns:
- the
Listin array format
-
toMultiLineStringArray
Converts theListto an array.- Parameters:
multiLineStrings- theListof MultiLineStrings to convert- Returns:
- the
Listin array format
-
toMultiPointArray
Converts theListto an array.- Parameters:
multiPoints- theListof MultiPoints to convert- Returns:
- the
Listin array format
-
toGeometry
Creates aGeometrywith the same extent as the given envelope. The Geometry returned is guaranteed to be valid. To provide this behaviour, the following cases occur:If the
Envelopeis:- null : returns an empty
Point - a point : returns a non-empty
Point - a line : returns a two-point
LineString - a rectangle : returns a
Polygonwhose points are (minx, miny), (minx, maxy), (maxx, maxy), (maxx, miny), (minx, miny).
- Parameters:
envelope- theEnvelopeto convert- Returns:
- an empty
Point(for nullEnvelopes), aPoint(when min x = max x and min y = max y) or aPolygon(in all other cases)
- null : returns an empty
-
getPrecisionModel
Returns the PrecisionModel that Geometries created by this factory will be associated with.- Returns:
- the PrecisionModel for this factory
-
createPoint
-
createPoint
Creates a Point using the given Coordinate. A null Coordinate creates an empty Geometry.- Parameters:
coordinate- a Coordinate, or null- Returns:
- the created Point
-
createPoint
Creates a Point using the given CoordinateSequence; a null or empty CoordinateSequence will create an empty Point.- Parameters:
coordinates- a CoordinateSequence (possibly empty), or null- Returns:
- the created Point
-
createMultiLineString
-
createMultiLineString
Creates a MultiLineString using the given LineStrings; a null or empty array will create an empty MultiLineString.- Parameters:
lineStrings- LineStrings, each of which may be empty but not null- Returns:
- the created MultiLineString
-
createGeometryCollection
-
createGeometryCollection
Creates a GeometryCollection using the given Geometries; a null or empty array will create an empty GeometryCollection.- Parameters:
geometries- an array of Geometries, each of which may be empty but not null, or null- Returns:
- the created GeometryCollection
-
createMultiPolygon
-
createMultiPolygon
Creates a MultiPolygon using the given Polygons; a null or empty array will create an empty Polygon. The polygons must conform to the assertions specified in the OpenGIS Simple Features Specification for SQL.- Parameters:
polygons- Polygons, each of which may be empty but not null- Returns:
- the created MultiPolygon
-
createLinearRing
-
createLinearRing
Creates aLinearRingusing the givenCoordinates. A null or empty array creates an empty LinearRing. The points must form a closed and simple linestring.- Parameters:
coordinates- an array without null elements, or an empty array, or null- Returns:
- the created LinearRing
- Throws:
IllegalArgumentException- if the ring is not closed, or has too few points
-
createLinearRing
Creates aLinearRingusing the givenCoordinateSequence. A null or empty array creates an empty LinearRing. The points must form a closed and simple linestring.- Parameters:
coordinates- a CoordinateSequence (possibly empty), or null- Returns:
- the created LinearRing
- Throws:
IllegalArgumentException- if the ring is not closed, or has too few points
-
createMultiPoint
-
createMultiPoint
Creates aMultiPointusing the givenPoints. A null or empty array will create an empty MultiPoint.- Parameters:
point- an array of Points (without null elements), or an empty array, ornull- Returns:
- a MultiPoint object
-
createMultiPoint
Deprecated.Creates aMultiPointusing the givenCoordinates. A null or empty array will create an empty MultiPoint.- Parameters:
coordinates- an array (without null elements), or an empty array, ornull- Returns:
- a MultiPoint object
-
createMultiPointFromCoords
Creates aMultiPointusing the givenCoordinates. A null or empty array will create an empty MultiPoint.- Parameters:
coordinates- an array (without null elements), or an empty array, ornull- Returns:
- a MultiPoint object
-
createMultiPoint
Creates aMultiPointusing the points in the givenCoordinateSequence. Anullor empty CoordinateSequence creates an empty MultiPoint.- Parameters:
coordinates- a CoordinateSequence (possibly empty), ornull- Returns:
- a MultiPoint geometry
-
createPolygon
Constructs aPolygonwith the given exterior boundary and interior boundaries.- Parameters:
shell- the outer boundary of the newPolygon, ornullor an emptyLinearRingif the empty geometry is to be created.holes- the inner boundaries of the newPolygon, ornullor emptyLinearRings if the empty geometry is to be created.- Throws:
IllegalArgumentException- if a ring is invalid
-
createPolygon
Constructs aPolygonwith the given exterior boundary.- Parameters:
shell- the outer boundary of the newPolygon, ornullor an emptyLinearRingif the empty geometry is to be created.- Throws:
IllegalArgumentException- if the boundary ring is invalid
-
createPolygon
Constructs aPolygonwith the given exterior boundary.- Parameters:
shell- the outer boundary of the newPolygon, ornullor an emptyLinearRingif the empty geometry is to be created.- Throws:
IllegalArgumentException- if the boundary ring is invalid
-
createPolygon
Constructs aPolygonwith the given exterior boundary.- Parameters:
shell- the outer boundary of the newPolygon, ornullor an emptyLinearRingif the empty geometry is to be created.- Throws:
IllegalArgumentException- if the boundary ring is invalid
-
createPolygon
-
buildGeometry
Build an appropriateGeometry,MultiGeometry, orGeometryCollectionto contain theGeometrys in it. For example:
- If
geomListcontains a singlePolygon, thePolygonis returned. - If
geomListcontains severalPolygons, aMultiPolygonis returned. - If
geomListcontains somePolygons and someLineStrings, aGeometryCollectionis returned. - If
geomListis empty, an emptyGeometryCollectionis returned
- Parameters:
geomList- theGeometrys to combine- Returns:
- a
Geometryof the "smallest", "most type-specific" class that can contain the elements ofgeomList.
- If
-
createLineString
-
createLineString
Creates a LineString using the given Coordinates. A null or empty array creates an empty LineString.- Parameters:
coordinates- an array without null elements, or an empty array, or null
-
createLineString
Creates a LineString using the given CoordinateSequence. A null or empty CoordinateSequence creates an empty LineString.- Parameters:
coordinates- a CoordinateSequence (possibly empty), or null
-
createGeometry
Creates a deep copy of the inputGeometry. TheCoordinateSequenceFactorydefined for this factory is used to copy theCoordinateSequences of the input geometry.This is a convenient way to change the CoordinateSequence used to represent a geometry, or to change the factory used for a geometry.
Geometry.copy()can also be used to make a deep copy, but it does not allow changing the CoordinateSequence type.- Returns:
- a deep copy of the input geometry, using the CoordinateSequence type of this factory
- See Also:
-
getSRID
public int getSRID()Gets the SRID value defined for this factory.- Returns:
- the factory SRID value
-
getCoordinateSequenceFactory
-
createMultiPointFromCoords(org.locationtech.jts.geom.Coordinate[])instead