Class PolygonBuilder
java.lang.Object
org.elasticsearch.common.geo.builders.ShapeBuilder<org.locationtech.spatial4j.shape.jts.JtsGeometry,org.elasticsearch.geometry.Geometry,PolygonBuilder>
org.elasticsearch.common.geo.builders.PolygonBuilder
- All Implemented Interfaces:
NamedWriteable,Writeable,org.elasticsearch.common.xcontent.ToXContent,org.elasticsearch.common.xcontent.ToXContentObject
public class PolygonBuilder
extends ShapeBuilder<org.locationtech.spatial4j.shape.jts.JtsGeometry,org.elasticsearch.geometry.Geometry,PolygonBuilder>
The
PolygonBuilder implements the groundwork to create polygons. This contains
Methods to wrap polygons at the dateline and building shapes from the data held by the
builder.-
Nested Class Summary
Nested classes/interfaces inherited from class org.elasticsearch.common.geo.builders.ShapeBuilder
ShapeBuilder.EdgeNested classes/interfaces inherited from interface org.elasticsearch.common.xcontent.ToXContent
org.elasticsearch.common.xcontent.ToXContent.DelegatingMapParams, org.elasticsearch.common.xcontent.ToXContent.MapParams, org.elasticsearch.common.xcontent.ToXContent.ParamsNested classes/interfaces inherited from interface org.elasticsearch.common.io.stream.Writeable
Writeable.Reader<V>, Writeable.Writer<V> -
Field Summary
FieldsFields inherited from class org.elasticsearch.common.geo.builders.ShapeBuilder
AUTO_INDEX_JTS_GEOMETRY, AUTO_VALIDATE_JTS_GEOMETRY, coordinates, DATELINE, FACTORY, INTERSECTION_ORDER, LOGGER, MULTI_POLYGON_MAY_OVERLAP, SPATIAL_CONTEXT, wrapdateline, ZERO_ZEROFields inherited from interface org.elasticsearch.common.xcontent.ToXContent
EMPTY_PARAMS -
Constructor Summary
ConstructorsConstructorDescriptionPolygonBuilder(CoordinatesBuilder coordinates)PolygonBuilder(CoordinatesBuilder coordinates, Orientation orientation)PolygonBuilder(LineStringBuilder lineString, Orientation orientation)PolygonBuilder(LineStringBuilder lineString, Orientation orientation, boolean coerce)Read from a stream. -
Method Summary
Modifier and TypeMethodDescriptionorg.elasticsearch.geometry.Geometrybuild lucene geometry.org.locationtech.spatial4j.shape.jts.JtsGeometrybuildS4J()Create a new Shape from this builder.org.locationtech.jts.geom.GeometrybuildS4JGeometry(org.locationtech.jts.geom.GeometryFactory factory, boolean fixDateline)close()Close the shell of the polygonprotected StringBuilderorg.locationtech.jts.geom.Coordinate[][][]The coordinates setup by the builder will be assembled to a polygon.protected org.elasticsearch.common.xcontent.XContentBuildercoordinatesArray(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params params)booleaninthashCode()hole(LineStringBuilder hole)Add a new hole to the polygonhole(LineStringBuilder hole, boolean coerce)Add a new hole to the polygonholes()protected static org.elasticsearch.geometry.LinearRinglinearRing(List<org.locationtech.jts.geom.Coordinate> coordinates)protected static org.locationtech.jts.geom.LinearRinglinearRingS4J(org.locationtech.jts.geom.GeometryFactory factory, List<org.locationtech.jts.geom.Coordinate> coordinates)protected static org.locationtech.jts.geom.MultiPolygonmultipolygonS4J(org.locationtech.jts.geom.GeometryFactory factory, org.locationtech.jts.geom.Coordinate[][][] polygons)Create a Multipolygon from a set of coordinates.inttracks number of dimensions for this shapeprotected static org.locationtech.jts.geom.PolygonpolygonS4J(org.locationtech.jts.geom.GeometryFactory factory, org.locationtech.jts.geom.Coordinate[][] polygon)shell()org.elasticsearch.geometry.Polygonorg.locationtech.jts.geom.Polygonprotected org.locationtech.jts.geom.PolygontoPolygonS4J(org.locationtech.jts.geom.GeometryFactory factory)org.elasticsearch.common.xcontent.XContentBuildertoXContent(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params params)type()get the shapes typeprotected voidvalidateHole(LineStringBuilder shell, LineStringBuilder hole)Validates only 1 vertex is tangential (shared) between the interior and exterior of a polygonvoidwriteTo(StreamOutput out)Write this into the StreamOutput.Methods inherited from class org.elasticsearch.common.geo.builders.ShapeBuilder
coordinate, coordinate, coordinateListToWKT, coordinates, coordinates, coordinates, coordinatesToXcontent, debugEnabled, getWriteableName, intersection, intersections, jtsGeometry, readFromStream, shift, toString, toWKT, toXContent, writeCoordinateToMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.elasticsearch.common.xcontent.ToXContentObject
isFragment
-
Field Details
-
TYPE
-
-
Constructor Details
-
PolygonBuilder
-
PolygonBuilder
-
PolygonBuilder
-
PolygonBuilder
-
PolygonBuilder
Read from a stream.- Throws:
IOException
-
-
Method Details
-
writeTo
Description copied from interface:WriteableWrite this into the StreamOutput.- Specified by:
writeToin interfaceWriteable- Overrides:
writeToin classShapeBuilder<org.locationtech.spatial4j.shape.jts.JtsGeometry,org.elasticsearch.geometry.Geometry,PolygonBuilder>- Throws:
IOException
-
orientation
-
hole
Add a new hole to the polygon- Parameters:
hole- linear ring defining the hole- Returns:
- this
-
hole
Add a new hole to the polygon- Parameters:
hole- linear ring defining the holecoerce- if set to true, it will try to close the hole by adding starting point as end point- Returns:
- this
-
holes
- Returns:
- the list of holes defined for this polygon
-
shell
- Returns:
- the list of points of the shell for this polygon
-
close
Close the shell of the polygon -
validateHole
Validates only 1 vertex is tangential (shared) between the interior and exterior of a polygon -
coordinates
public org.locationtech.jts.geom.Coordinate[][][] coordinates()The coordinates setup by the builder will be assembled to a polygon. The result will consist of a set of polygons. Each of these components holds a list of linestrings defining the polygon: the first set of coordinates will be used as the shell of the polygon. The others are defined to holes within the polygon. This Method also wraps the polygons at the dateline. In order to this fact the result may contains more polygons and less holes than defined in the builder it self.- Returns:
- coordinates of the polygon
-
buildS4J
public org.locationtech.spatial4j.shape.jts.JtsGeometry buildS4J()Description copied from class:ShapeBuilderCreate a new Shape from this builder. Since calling this method could change the defined shape. (by inserting new coordinates or change the position of points) the builder looses its validity. So this method should only be called once on a builder- Specified by:
buildS4Jin classShapeBuilder<org.locationtech.spatial4j.shape.jts.JtsGeometry,org.elasticsearch.geometry.Geometry,PolygonBuilder>- Returns:
- new
Shapedefined by the builder
-
buildGeometry
public org.elasticsearch.geometry.Geometry buildGeometry()Description copied from class:ShapeBuilderbuild lucene geometry.- Specified by:
buildGeometryin classShapeBuilder<org.locationtech.spatial4j.shape.jts.JtsGeometry,org.elasticsearch.geometry.Geometry,PolygonBuilder>- Returns:
- GeoPoint, double[][], Line, Line[], Polygon, Polygon[], Rectangle, Object[]
-
coordinatesArray
protected org.elasticsearch.common.xcontent.XContentBuilder coordinatesArray(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params params) throws IOException- Throws:
IOException
-
toXContent
public org.elasticsearch.common.xcontent.XContentBuilder toXContent(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params params) throws IOException- Throws:
IOException
-
buildS4JGeometry
public org.locationtech.jts.geom.Geometry buildS4JGeometry(org.locationtech.jts.geom.GeometryFactory factory, boolean fixDateline) -
toPolygonS4J
public org.locationtech.jts.geom.Polygon toPolygonS4J() -
toPolygonS4J
protected org.locationtech.jts.geom.Polygon toPolygonS4J(org.locationtech.jts.geom.GeometryFactory factory) -
toPolygonGeometry
public org.elasticsearch.geometry.Polygon toPolygonGeometry() -
linearRing
protected static org.elasticsearch.geometry.LinearRing linearRing(List<org.locationtech.jts.geom.Coordinate> coordinates) -
linearRingS4J
protected static org.locationtech.jts.geom.LinearRing linearRingS4J(org.locationtech.jts.geom.GeometryFactory factory, List<org.locationtech.jts.geom.Coordinate> coordinates) -
type
Description copied from class:ShapeBuilderget the shapes type- Specified by:
typein classShapeBuilder<org.locationtech.spatial4j.shape.jts.JtsGeometry,org.elasticsearch.geometry.Geometry,PolygonBuilder>- Returns:
- type of the shape
-
numDimensions
public int numDimensions()Description copied from class:ShapeBuildertracks number of dimensions for this shape- Specified by:
numDimensionsin classShapeBuilder<org.locationtech.spatial4j.shape.jts.JtsGeometry,org.elasticsearch.geometry.Geometry,PolygonBuilder>
-
polygonS4J
protected static org.locationtech.jts.geom.Polygon polygonS4J(org.locationtech.jts.geom.GeometryFactory factory, org.locationtech.jts.geom.Coordinate[][] polygon) -
multipolygonS4J
protected static org.locationtech.jts.geom.MultiPolygon multipolygonS4J(org.locationtech.jts.geom.GeometryFactory factory, org.locationtech.jts.geom.Coordinate[][][] polygons)Create a Multipolygon from a set of coordinates. Each primary array contains a polygon which in turn contains an array of linestrings. These line Strings are represented as an array of coordinates. The first linestring will be the shell of the polygon the others define holes within the polygon.- Parameters:
factory-GeometryFactoryto usepolygons- definition of polygons- Returns:
- a new Multipolygon
-
contentToWKT
- Overrides:
contentToWKTin classShapeBuilder<org.locationtech.spatial4j.shape.jts.JtsGeometry,org.elasticsearch.geometry.Geometry,PolygonBuilder>
-
hashCode
public int hashCode()- Overrides:
hashCodein classShapeBuilder<org.locationtech.spatial4j.shape.jts.JtsGeometry,org.elasticsearch.geometry.Geometry,PolygonBuilder>
-
equals
- Overrides:
equalsin classShapeBuilder<org.locationtech.spatial4j.shape.jts.JtsGeometry,org.elasticsearch.geometry.Geometry,PolygonBuilder>
-