GEOS: geos::operation::geounion::UnaryUnionOp Class Reference

Public Member Functions | Static Public Member Functions

# geos::operation::geounion::UnaryUnionOp Class Reference

`#include <UnaryUnionOp.h>`

List of all members.

## Public Member Functions
template<class T >
| UnaryUnionOp (const T &geoms, geom::GeometryFactory &geomFactIn)
template<class T >
| UnaryUnionOp (const T &geoms)
| UnaryUnionOp (const geom::Geometry &geom)
std::auto_ptr< geom::Geometry > | Union ()
| Gets the union of the input geometries.
## Static Public Member Functions
template<typename T >
static std::auto_ptr < geom::Geometry > | Union (const T &geoms)
template<class T >
static std::auto_ptr < geom::Geometry > | Union (const T &geoms, geom::GeometryFactory &geomFact)
static std::auto_ptr < geom::Geometry > | Union (const geom::Geometry &geom)

## Detailed Description

Unions a collection of Geometry or a single Geometry (which may be a collection) together. By using this special-purpose operation over a collection of geometries it is possible to take advantage of various optimizations to improve performance. Heterogeneous GeometryCollections are fully supported.

The result obeys the following contract:

- Unioning a set of overlapping Polygonss has the effect of merging the areas (i.e. the same effect as iteratively unioning all individual polygons together).
- Unioning a set of LineStrings has the effect of fully noding and dissolving the input linework. In this context "fully noded" means that there will be a node or endpoint in the output for every endpoint or line segment crossing in the input. "Dissolved" means that any duplicate (e.g. coincident) line segments or portions of line segments will be reduced to a single line segment in the output. * This is consistent with the semantics of the Geometry#union(Geometry) operation. If merged linework is required, the LineMerger class can be used.
- Unioning a set of Pointss has the effect of merging al identical points (producing a set with no duplicates).

`UnaryUnion` always operates on the individual components of MultiGeometries. So it is possible to use it to "clean" invalid self-intersecting MultiPolygons (although the polygon components must all still be individually valid.)

## Member Function Documentation

std::auto_ptr<geom::Geometry> geos::operation::geounion::UnaryUnionOp::Union | ( | ) |

Gets the union of the input geometries.

If no input geometries were provided, a POINT EMPTY is returned.

Returns:
  a Geometry containing the union
  an empty GEOMETRYCOLLECTION if no geometries were provided in the input

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

- UnaryUnionOp.h