GEOS 3.3.4

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

Public Member Functions | Static Public Member Functions | List of all members
geos::operation::geounion::CascadedPolygonUnion Class Reference

Provides an efficient method of unioning a collection of Polygonal geometries. This algorithm is faster and likely more robust than the simple iterated approach of repeatedly unioning each polygon to a result geometry. More...

`#include <CascadedPolygonUnion.h>`

## Public Member Functions
| CascadedPolygonUnion (std::vector< geom::Polygon * > *polys)
geom::Geometry * | Union ()

## Static Public Member Functions
static geom::Geometry * | Union (std::vector< geom::Polygon * > *polys)
template<class T >
static geom::Geometry * | Union (T start, T end)
static geom::Geometry * | Union (const geom::MultiPolygon *polys)

## Detailed Description

Provides an efficient method of unioning a collection of Polygonal geometries. This algorithm is faster and likely more robust than the simple iterated approach of repeatedly unioning each polygon to a result geometry.

The `buffer(0)` trick is sometimes faster, but can be less robust and can sometimes take an exceptionally long time to complete. This is particularly the case where there is a high degree of overlap between the polygons. In this case, `buffer(0)` is forced to compute with all line segments from the outset, whereas cascading can eliminate many segments at each stage of processing. The best case for buffer(0) is the trivial case where there is no overlap between the input geometries. However, this case is likely rare in practice.

## Constructor & Destructor Documentation

geos::operation::geounion::CascadedPolygonUnion::CascadedPolygonUnion | ( | std::vector< geom::Polygon * > * | polys | ) |
| inline

Creates a new instance to union the given collection of Geometrys.

Parameters

  geoms | a collection of Polygonal Geometrys ownership of elements and vector are left to caller.

## Member Function Documentation

static geom::Geometry* geos::operation::geounion::CascadedPolygonUnion::Union | ( | std::vector< geom::Polygon * > * | polys | ) |
| static

Computes the union of a collection of Polygonal Geometrys.

Parameters

  polys | a collection of Polygonal Geometrys. ownership of elements and vector are left to caller.

template<class T >

static geom::Geometry* geos::operation::geounion::CascadedPolygonUnion::Union | ( | T | start,
|  | T | end
| ) |  |
| inline static

Computes the union of a set of Polygonal Geometrys.

Template Parameters

  T | an iterator yelding something castable to const Polygon *

Parameters

  start | start iterator
  end | end iterator

static geom::Geometry* geos::operation::geounion::CascadedPolygonUnion::Union | ( | const geom::MultiPolygon * | polys | ) |
| static

Computes the union of a collection of Polygonal Geometrys.

Parameters

  polys | a collection of Polygonal Geometrys ownership of elements and vector are left to caller.

geom::Geometry* geos::operation::geounion::CascadedPolygonUnion::Union | ( |  | ) |

Computes the union of the input geometries.

Returns
  the union of the input geometries
  null if no input geometries were provided

The documentation for this class was generated from the following file:

- CascadedPolygonUnion.h