box_connectivity
Geometric functions box_connectivity
syntax
- box_connectivity(lower_bound(polygon_data_item), upper_bound(polygon_data_item))
definition
box_connectivity(lower_bound(polygon_data_item), upper_bound(polygon_data_item)) results in a new uint32 Domain unit with one entry for each ‘connection’ in the polygon_data_item Argument.
A ‘connection’ is a pair of bounding boxes that overlap or touch. The polygons themselves are not looked at, so a connection is a candidate pair, not a proof that the two polygons meet: Polygon_connectivity and the xxx_polygon_connectivity operators test the geometry, at a higher cost.
description
The function results in an F1 and F2 Attribute with relations to the Domain unit of the polygon_data_item attribute.
The relations indicate which connections exist, each connection only occurs once (a connection between polygon 0 and 1 only occurs as F1: 0 and F2: 1 and not vice versa).
This could be very useful to speed up partitioned unions, where the result of this operator can serve as the approximate partition.
see example
unit<uint32> SomePolygonSet
{
attribute<fpoint> geometry (poly);
unit<uint32> BoxedConnectivity := box_connectivity(lower_bound(geometry), upper_bound(geometry));
unit<uint32> ConnectParts := connected_parts(BoxedConnectivity/F1, BoxedConnectivity/F2);
}
unit<uint32> SplitUnionedSet := bp_split_union_polygon(SomePolygonSet/geometry[rdc_cm], SomePolygonSet/ConnectParts/Part_rel);
conditions
- The composition type type of the polygon_data_item Argument needs to be polygon with an ipoint, spoint, fpoint, or dpoint Value type.
- The order of the points in polygon_data_item needs to be clockwise for exterior bounds and counter clockwise for holes in polygons (right-hand-rule).
since version
15.6.0
example
unit<uint32> connection := box_connectivity(lower_bound(district/geometry), upper_bound(district/geometry));
see also
- Polygon_connectivity - the exact version: pairs of polygons that overlap or touch, with the same F1 and F2 layout
- bp_polygon_connectivity, bg_polygon_connectivity, cgal_polygon_connectivity, geos_polygon_connectivity - exact pairing within one set or between two sets, as relations first_rel and second_rel
- bp_overlay_polygon, bg_overlay_polygon, cgal_overlay_polygon, geos_overlay_polygon - exact pairing with the intersection geometry of each pair
- dms_polygon_connectivity and dms_overlay_polygon - the same two, on the sweep GeoDMS implements itself, which does not require valid operands
- polygon operators - the comparison of the operators that find pairs of polygons
- configuration example: Border polygons