bp_union - ObjectVision/GeoDMS GitHub Wiki
Geometric functions > bp_union
- bp_union(polygon_data_item1, polygon_data_item2)
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.
- attribute polygon_data_item1 with a polygon value type with integer coordinates (ipoint or spoint)
- attribute polygon_data_item2 with a polygon value type with integer coordinates (ipoint or spoint)
The value types of both arguments must be compatible (same point type).
- The composition type of both arguments needs to be polygon.
- The domains of the two arguments must match, or one argument must have a void domain (parameter).
- 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.
15.6.0
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;