Class CascadedPolygonUnion


  • public class CascadedPolygonUnion
    extends java.lang.Object
    Provides an efficient method of unioning a collection of Polygonal geometries. The geometries are indexed using a spatial index, and unioned recursively in index order. For geometries with a high degree of overlap, this has the effect of reducing the number of vertices early in the process, which increases speed and robustness.

    This algorithm is faster and more robust than the simple iterated approach of repeatedly unioning each polygon to a result geometry.

    Author:
    Martin Davis
    • Constructor Detail

      • CascadedPolygonUnion

        public CascadedPolygonUnion​(java.util.Collection polys)
        Creates a new instance to union the given collection of Geometrys.
        Parameters:
        polys - a collection of Polygonal Geometrys
      • CascadedPolygonUnion

        public CascadedPolygonUnion​(java.util.Collection polys,
                                    UnionStrategy unionFun)
        Creates a new instance to union the given collection of Geometrys.
        Parameters:
        polys - a collection of Polygonal Geometrys
    • Method Detail

      • union

        public Geometry union()
        Computes the union of the input geometries.

        This method discards the input geometries as they are processed. In many input cases this reduces the memory retained as the operation proceeds. Optimal memory usage is achieved by disposing of the original input collection before calling this method.

        Returns:
        the union of the input geometries or null if no input geometries were provided
        Throws:
        java.lang.IllegalStateException - if this method is called more than once