-
Notifications
You must be signed in to change notification settings - Fork 1
box_connectivity
Geometric functions box_connectivity
- box_connectivity(lower_bound(polygon_data_item), upper_bound(polygon_data_item))
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.
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);
- 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).
15.6.0
unit<uint32> connection := box_connectivity(lower_bound(district/geometry), upper_bound(district/geometry));
- 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
GeoDMS ©Object Vision BV. Source code distributed under GNU GPL-3. Documentation distributed under CC BY-SA 4.0.