bp_union - ObjectVision/GeoDMS GitHub Wiki

Geometric functions > bp_union

syntax

  • bp_union(polygon_data_item1, polygon_data_item2)

description

bp_union(polygon_data_item1, polygon_data_item2) results in a data item with the union of the two polygon arguments. The result contains, for each element, the combined area covered by either polygon argument.

The operator is applied element-by-element. Both domains need to match, or one of the arguments needs to be a parameter (void domain).

The bp_ prefix of the function name indicates that the implementation of the operator uses the Boost Polygon library, which requires integer coordinates.

This operator is also automatically invoked by the + and | operators when used with ipoint or spoint polygon data items.

applies to

The value types of both arguments must be compatible (same point type).

conditions

  1. The composition type of both arguments needs to be polygon.
  2. The domains of the two arguments must match, or one argument must have a void domain (parameter).
  3. The polygon data items must have integer coordinates (ipoint or spoint).

This function results in problems for (integer) coordinates larger than 2^25 (after translation where the first point is moved to (0, 0)). If your integer coordinates, for instance, represent mm, 2^25[mm] = about 33 [km]. We advise you to keep the size of your integer coordinates for polygons limited.

since version

15.6.0

example

attribute<ipoint> geometry_union (district) := bp_union(district/geometry, municipality/geometry);
// equivalent to (for integer coordinates):
attribute<ipoint> geometry_union (district) := district/geometry + municipality/geometry;

see also

⚠️ **GitHub.com Fallback** ⚠️