public class LineString extends Geometryimplements Lineal
LineString. A LineString consists of a sequence of two or more vertices, along with all points along the linearly-interpolated curves (line segments) between each pair of consecutive vertices. Consecutive vertices may be equal. The line segments in the line may intersect each other (in other words, the linestring may "curl back" in itself and self-intersect. Linestrings with exactly two identical points are invalid.
A linestring must have either 0 or 2 or more points. If these conditions are not met, the constructors throw an IllegalArgumentException
| Modifier and Type | Field and Description |
|---|---|
protected CoordinateSequence |
points
The points of this
LineString.
|
| Constructor and Description |
|---|
LineString(Coordinate
Deprecated.
Use GeometryFactory instead
|
LineString(CoordinateSequence
Constructs a
LineString with the given points.
|
| Modifier and Type | Method and Description |
|---|---|
void |
apply(CoordinateFilter
Performs an operation with or on this
Geometry's coordinates.
|
void |
apply(CoordinateSequenceFilter
Performs an operation on the coordinates in this
Geometry's
CoordinateSequences.
|
void |
apply(GeometryComponentFilter
Performs an operation with or on this Geometry and its component Geometry's.
|
void |
apply(GeometryFilter
Performs an operation with or on this
Geometry and its subelement
Geometrys (if any).
|
Object |
clone()
Creates and returns a full copy of this
LineString object.
|
protected int |
compareToSameClass(Object
Returns whether this
Geometry is greater than, equal to, or less than another
Geometry having the same class.
|
protected int |
compareToSameClass(Object
Returns whether this
Geometry is greater than, equal to, or less than another
Geometry of the same class.
|
protected Envelope |
computeEnvelopeInternal()
Returns the minimum and maximum x and y values in this
Geometry , or a null
Envelope if this
Geometry is empty.
|
boolean |
equalsExact(Geometry
Returns true if the two
Geometrys are exactly equal, up to a specified distance tolerance.
|
Geometry |
getBoundary()
Gets the boundary of this geometry.
|
int |
getBoundaryDimension()
Returns the dimension of this
Geometrys inherent boundary.
|
Coordinate |
getCoordinate()
Returns a vertex of this
Geometry (usually, but not necessarily, the first one).
|
Coordinate |
getCoordinateN(int n)
|
Coordinate |
getCoordinates()
Returns an array containing the values of all the vertices for this geometry.
|
CoordinateSequence |
getCoordinateSequence()
|
int |
getDimension()
Returns the dimension of this geometry.
|
Point |
getEndPoint()
|
String |
getGeometryType()
Returns the name of this Geometry's actual class.
|
double |
getLength()
Returns the length of this
LineString
|
int |
getNumPoints()
Returns the count of this
Geometrys vertices.
|
Point |
getPointN(int n)
|
Point |
getStartPoint()
|
boolean |
isClosed()
|
boolean |
isCoordinate(Coordinate
Returns true if the given point is a vertex of this
LineString.
|
boolean |
isEmpty()
Tests whether the set of points covered by this
Geometry is empty.
|
protected boolean |
isEquivalentClass(Geometry
Returns whether the two
Geometrys are equal, from the point of view of the
equalsExact method.
|
boolean |
isRing()
|
void |
normalize()
Normalizes a LineString.
|
Geometry |
reverse()
Creates a
LineString whose coordinates are in the reverse order of this objects
|
buffer, buffer, buffer, checkNotGeometryCollection, compare, compareTo, compareTo, contains, convexHull, coveredBy, covers, crosses, difference, disjoint, distance, equal, equals, equals, equalsExact, equalsNorm, equalsTopo, geometryChanged, geometryChangedAction, getArea, getCentroid, getEnvelope, getEnvelopeInternal, getFactory, getGeometryN, getInteriorPoint, getNumGeometries, getPrecisionModel, getSRID, getUserData, hashCode, hasNonEmptyElements, hasNullElements, intersection, intersects, isGeometryCollection, isRectangle, isSimple, isValid, isWithinDistance, norm, overlaps, relate, relate, setSRID, setUserData, symDifference, toString, toText, touches, union, union, withinprotected CoordinateSequencepoints
LineString.
public LineString(Coordinate[] points, PrecisionModel precisionModel, int SRID)
public LineString(CoordinateSequencepoints, GeometryFactory factory)
LineString with the given points.
points - the points of the linestring, or
null to create the empty geometry.
IllegalArgumentException - if too few points are provided
public Coordinate[] getCoordinates()
Geometry
In general, the array cannot be assumed to be the actual internal storage for the vertices. Thus modifying the array may not modify the geometry itself. Use the CoordinateSequence method (possibly on the components) to modify the underlying data. If the coordinates are modified, Geometry must be called afterwards.
getCoordinates in class
Geometry
Geometry
Geometry.geometryChanged() ,
CoordinateSequence.setOrdinate(int, int, double)
public CoordinateSequencegetCoordinateSequence()
public CoordinategetCoordinateN(int n)
public CoordinategetCoordinate()
Geometry
Geometry (usually, but not necessarily, the first one). The returned coordinate should not be assumed to be an actual Coordinate object used in the internal representation.
getCoordinate in class
Geometry
Coordinate which is a vertex of this
Geometry.
public int getDimension()
Geometry
Note that this is a different concept to the dimension of the vertex Coordinates. The geometry dimension can never be greater than the coordinate dimension. For example, a 0-dimensional geometry (e.g. a Point) may have a coordinate dimension of 3 (X,Y,Z).
getDimension in class
Geometry
public int getBoundaryDimension()
Geometry
Geometrys inherent boundary.
getBoundaryDimension in class
Geometry
Dimension.FALSE if the boundary is the empty geometry.
public boolean isEmpty()
Geometry
Geometry is empty.
public int getNumPoints()
Geometry
Geometrys vertices. The
Geometry s contained by composite
Geometrys must be Geometry's; that is, they must implement
getNumPoints
getNumPoints in class
Geometry
Geometry
public PointgetPointN(int n)
public PointgetStartPoint()
public PointgetEndPoint()
public boolean isClosed()
public boolean isRing()
public StringgetGeometryType()
Geometry
getGeometryType in class
Geometry
Geometrys actual class
public double getLength()
LineString
public GeometrygetBoundary()
getBoundary in class
Geometry
Geometry.getBoundary()
public Geometryreverse()
LineString whose coordinates are in the reverse order of this objects
reverse in class
Geometry
LineString with coordinates in the reverse order
public boolean isCoordinate(Coordinatept)
LineString.
pt - the
Coordinate to check
true if
pt is one of this
LineString 's vertices
protected EnvelopecomputeEnvelopeInternal()
Geometry
Geometry , or a null
Envelope if this
Geometry is empty. Unlike
getEnvelopeInternal, this method calculates the
Envelope each time it is called;
getEnvelopeInternal caches the result of this method.
computeEnvelopeInternal in class
Geometry
Geometrys bounding box; if the
Geometry is empty,
Envelope#isNull will return
true
public boolean equalsExact(Geometryother, double tolerance)
Geometry
Geometrys are exactly equal, up to a specified distance tolerance. Two Geometries are exactly equal within a distance tolerance if and only if:
GeometryFactory, the
SRID, or the
userData fields.
To properly test equality between different geometries, it is usually necessary to Geometry them first.
equalsExact in class
Geometry
other - the
Geometry with which to compare this
Geometry
tolerance - distance at or below which two
Coordinates are considered equal
true if this and the other
Geometry have identical structure and point values, up to the distance tolerance.
Geometry.equalsExact(Geometry) ,
Geometry.normalize() ,
Geometry.norm()
public void apply(CoordinateFilterfilter)
Geometry
Geometry's coordinates. If this method modifies any coordinate values,
Geometry.geometryChanged() must be called to update the geometry state. Note that you cannot use this method to modify this Geometry if its underlying CoordinateSequence's #get method returns a copy of the Coordinate, rather than the actual Coordinate stored (if it even stores Coordinate objects at all).
public void apply(CoordinateSequenceFilterfilter)
Geometry
Geometry's
CoordinateSequences. If the filter reports that a coordinate value has been changed,
Geometry.geometryChanged() will be called automatically.
public void apply(GeometryFilterfilter)
Geometry
Geometry and its subelement
Geometrys (if any). Only GeometryCollections and subclasses have subelement Geometry's.
public void apply(GeometryComponentFilterfilter)
Geometry
public Objectclone()
LineString object. (including all coordinates contained by it).
public void normalize()
protected boolean isEquivalentClass(Geometryother)
Geometry
Geometrys are equal, from the point of view of the
equalsExact method. Called by
equalsExact . In general, two
Geometry classes are considered to be "equivalent" only if they are the same class. An exception is
LineString , which is considered to be equivalent to its subclasses.
isEquivalentClass in class
Geometry
other - the
Geometry with which to compare this
Geometry for equality
true if the classes of the two
Geometry s are considered to be equal by the
equalsExact method.
protected int compareToSameClass(Objecto)
Geometry
Geometry is greater than, equal to, or less than another
Geometry having the same class.
compareToSameClass in class
Geometry
o - a
Geometry having the same class as this
Geometry
o, as defined in "Normal Form For Geometry" in the JTS Technical Specifications
protected int compareToSameClass(Objecto, CoordinateSequenceComparator comp)
Geometry
Geometry is greater than, equal to, or less than another
Geometry of the same class. using the given
CoordinateSequenceComparator.
compareToSameClass in class
Geometry
o - a
Geometry having the same class as this
Geometry
comp - a
CoordinateSequenceComparator
o, as defined in "Normal Form For Geometry" in the JTS Technical Specifications