Package io.github.sebasbaumh.postgis
Class LineString
- java.lang.Object
-
- io.github.sebasbaumh.postgis.Geometry
-
- io.github.sebasbaumh.postgis.Curve
-
- io.github.sebasbaumh.postgis.LineString
-
- All Implemented Interfaces:
LineBasedGeometry
,java.io.Serializable
,java.lang.Iterable<Point>
- Direct Known Subclasses:
CircularString
,LinearRing
@NonNullByDefault public class LineString extends Curve implements java.lang.Iterable<Point>
Linestring.- Author:
- Sebastian Baumhekel
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static int
TYPE
The OGIS geometry type number for lines.-
Fields inherited from class io.github.sebasbaumh.postgis.Geometry
UNKNOWN_SRID
-
-
Constructor Summary
Constructors Modifier Constructor Description LineString()
Constructs an instance.protected
LineString(int type)
Constructor for subclasses.protected
LineString(int type, java.lang.Iterable<Point> points)
Constructor for subclasses.LineString(java.lang.Iterable<Point> points)
Constructs an instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(Point p)
Adds the given point.void
addAll(java.lang.Iterable<Point> geoms)
Adds all given points.boolean
checkConsistency()
Do some internal consistency checks on the geometry.void
close()
Closes thisLineString
if the last coordinate is not already the same as the first coordinate.boolean
equals(java.lang.Object other)
java.lang.Object equals implementationjava.lang.Iterable<Point>
getCoordinates()
Gets the coordinates of thisGeometry
.Point
getEndPoint()
Gets the end point.int
getNumberOfCoordinates()
Gets the number of coordinates of thisGeometry
.Point
getStartPoint()
Gets the start point.boolean
hasMeasure()
Returns whether we have a measure (4th dimension)boolean
is3d()
Checks if thisGeometry
is 3d.boolean
isEmpty()
Ist thisGeometry
empty, so does it contain no coordinates or other geometries?java.util.Iterator<Point>
iterator()
double
length()
Gets the length of this line.void
reverse()
Reverses this linestring.-
Methods inherited from class io.github.sebasbaumh.postgis.Curve
isClockwise, isClosed
-
Methods inherited from class io.github.sebasbaumh.postgis.Geometry
getDimension, getSrid, getType, hashCode, numPoints, setSrid
-
-
-
-
Field Detail
-
TYPE
public static final int TYPE
The OGIS geometry type number for lines.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
LineString
public LineString()
Constructs an instance.
-
LineString
protected LineString(int type)
Constructor for subclasses.- Parameters:
type
- has to be given by all subclasses.
-
LineString
protected LineString(int type, java.lang.Iterable<Point> points)
Constructor for subclasses.- Parameters:
type
- has to be given by all subclasses.points
-Point
s
-
LineString
public LineString(java.lang.Iterable<Point> points)
Constructs an instance.- Parameters:
points
- points
-
-
Method Detail
-
add
public void add(Point p)
Adds the given point.- Parameters:
p
- point
-
addAll
public final void addAll(java.lang.Iterable<Point> geoms)
Adds all given points.- Parameters:
geoms
- points
-
checkConsistency
public boolean checkConsistency()
Description copied from class:Geometry
Do some internal consistency checks on the geometry. Currently, all Geometries must have a valid dimension (2 or 3) and a valid type. Composed geometries must have all equal SRID, dimensionality and measures, as well as that they do not contain NULL or inconsistent subgeometries. BinaryParser and WKTParser should only generate consistent geometries. BinaryWriter may produce invalid results on inconsistent geometries.- Overrides:
checkConsistency
in classGeometry
- Returns:
- true if all checks are passed.
-
close
public void close()
Closes thisLineString
if the last coordinate is not already the same as the first coordinate.
-
equals
public boolean equals(@Nullable java.lang.Object other)
Description copied from class:Geometry
java.lang.Object equals implementation
-
getCoordinates
public java.lang.Iterable<Point> getCoordinates()
Description copied from class:Geometry
Gets the coordinates of thisGeometry
.- Specified by:
getCoordinates
in classGeometry
- Returns:
- coordinates
-
getEndPoint
@Nullable public Point getEndPoint()
Description copied from interface:LineBasedGeometry
Gets the end point.- Specified by:
getEndPoint
in interfaceLineBasedGeometry
- Returns:
Point
on success, else null
-
getNumberOfCoordinates
public int getNumberOfCoordinates()
Description copied from class:Geometry
Gets the number of coordinates of thisGeometry
.- Specified by:
getNumberOfCoordinates
in classGeometry
- Returns:
- number of coordinates
-
getStartPoint
@Nullable public Point getStartPoint()
Description copied from interface:LineBasedGeometry
Gets the start point.- Specified by:
getStartPoint
in interfaceLineBasedGeometry
- Returns:
Point
on success, else null
-
hasMeasure
public boolean hasMeasure()
Description copied from class:Geometry
Returns whether we have a measure (4th dimension)- Specified by:
hasMeasure
in classGeometry
- Returns:
- true if the geometry has a measure, false otherwise
-
isEmpty
public boolean isEmpty()
Description copied from class:Geometry
Ist thisGeometry
empty, so does it contain no coordinates or other geometries?
-
iterator
public java.util.Iterator<Point> iterator()
- Specified by:
iterator
in interfacejava.lang.Iterable<Point>
-
length
public double length()
Description copied from interface:LineBasedGeometry
Gets the length of this line.- Specified by:
length
in interfaceLineBasedGeometry
- Returns:
- length
-
-