|
JTS Topology Suite version 1.13 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.vividsolutions.jts.operation.linemerge.LineSequencer
public class LineSequencer
Builds a sequence from a set of LineStrings so that they are ordered end to end. A sequence is a complete non-repeating list of the linear components of the input. Each linestring is oriented so that identical endpoints are adjacent in the list.
A typical use case is to convert a set of unoriented geometric links from a linear network (e.g. such as block faces on a bus route) into a continuous oriented path through the network.
The input linestrings may form one or more connected sets.
The input linestrings should be correctly noded, or the results may
not be what is expected.
The computed output is a single MultiLineString
containing the ordered
linestrings in the sequence.
The sequencing employs the classic Eulerian path graph algorithm. Since Eulerian paths are not uniquely determined, further rules are used to make the computed sequence preserve as much as possible of the input ordering. Within a connected subset of lines, the ordering rules are:
isSequenceable()
method
will return false
.
Constructor Summary | |
---|---|
LineSequencer()
|
Method Summary | |
---|---|
void |
add(java.util.Collection geometries)
Adds a Collection of Geometry s to be sequenced. |
void |
add(Geometry geometry)
Adds a Geometry to be sequenced. |
Geometry |
getSequencedLineStrings()
Returns the LineString or MultiLineString
built by the sequencing process, if one exists. |
boolean |
isSequenceable()
Tests whether the arrangement of linestrings has a valid sequence. |
static boolean |
isSequenced(Geometry geom)
Tests whether a Geometry is sequenced correctly. |
static Geometry |
sequence(Geometry geom)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public LineSequencer()
Method Detail |
---|
public static Geometry sequence(Geometry geom)
public static boolean isSequenced(Geometry geom)
Geometry
is sequenced correctly.
LineString
s are trivially sequenced.
MultiLineString
s are checked for correct sequencing.
Otherwise, isSequenced
is defined
to be true
for geometries that are not lineal.
geom
- the geometry to test
true
if the geometry is sequenced or is not linealpublic void add(java.util.Collection geometries)
Collection
of Geometry
s to be sequenced.
May be called multiple times.
Any dimension of Geometry may be added; the constituent linework will be
extracted.
geometries
- a Collection of geometries to addpublic void add(Geometry geometry)
Geometry
to be sequenced.
May be called multiple times.
Any dimension of Geometry may be added; the constituent linework will be
extracted.
geometry
- the geometry to addpublic boolean isSequenceable()
true
if a valid sequence exists.public Geometry getSequencedLineStrings()
LineString
or MultiLineString
built by the sequencing process, if one exists.
null
if a valid sequence does not exist
|
JTS Topology Suite version 1.13 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |