Skip to content

bp_polygon_connectivity

MaartenHilferink edited this page Apr 8, 2026 · 1 revision

Geometric functions > bp_polygon_connectivity

syntax

  • bp_polygon_connectivity(polygon_data_item)

description

bp_polygon_connectivity(polygon_data_item) finds all pairs of adjacent (touching or overlapping) polygons in the polygon_data_item and returns them as a new domain.

The result is a new domain unit (uint32) where each entry represents one adjacency relationship between two polygons. Two sub-attributes relate each entry back to the first and second polygon in the pair.

The bp_ prefix of the function name indicates that the implementation of the operator uses the Boost Polygon library.

applies to

conditions

  1. The composition type of the polygon_data_item needs to be polygon.
  2. The polygon data item must have a point value type with 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]. The reason is that for calculating intersections, products of coordinates are calculated and cast to float64 with a 53-bit mantissa. We advise you to keep the size of your integer coordinates for polygons limited.

result

The result is a container (new domain unit of type uint32) with:

  • F1: relation to the domain of polygon_data_item for the first polygon in each adjacent pair
  • F2: relation to the domain of polygon_data_item for the second polygon in each adjacent pair

since version

15.6.0

example

unit<uint32> adjacency := bp_polygon_connectivity(district/geometry)
{
    attribute<district> F1;
    attribute<district> F2;
}

see also

Clone this wiki locally