Class LineMerger

java.lang.Object
org.locationtech.jts.operation.linemerge.LineMerger

public class LineMerger extends Object
Merges a collection of linear components to form maximal-length linestrings.

Merging stops at nodes of degree 1 or degree 3 or more. In other words, all nodes of degree 2 are merged together. The exception is in the case of an isolated loop, which only has degree-2 nodes. In this case one of the nodes is chosen as a starting point.

The direction of each merged LineString will be that of the majority of the LineStrings from which it was derived.

Any dimension of Geometry is handled - the constituent linework is extracted to form the edges. The edges must be correctly noded; that is, they must only meet at their endpoints. The LineMerger will accept non-noded input but will not merge non-noded edges.

Input lines which are empty or contain only a single unique coordinate are not included in the merging.

Version:
1.7
  • Constructor Details

    • LineMerger

      public LineMerger()
      Creates a new line merger.
  • Method Details

    • add

      public void add(Geometry geometry)
      Adds a Geometry to be processed. May be called multiple times. Any dimension of Geometry may be added; the constituent linework will be extracted.
      Parameters:
      geometry - geometry to be line-merged
    • add

      public void add(Collection geometries)
      Adds a collection of Geometries to be processed. May be called multiple times. Any dimension of Geometry may be added; the constituent linework will be extracted.
      Parameters:
      geometries - the geometries to be line-merged
    • getMergedLineStrings

      public Collection getMergedLineStrings()
      Gets the LineStrings created by the merging process.
      Returns:
      the collection of merged LineStrings