# **Geometric functions**

Geometric functions calculate with geometries (coordinates) of points, arcs or polygons

## point

- point_xy -
*make a point attribute based on an X and Y attribute* - point_yx -
*make a point attribute based on an Y and X attribute* - point_isnearby -
*compare if two points are (almost) the same location* - pointrow -
*get the row numbers of a point attribute* - pointcol -
*get the column numbers of a point attribute* - get_x -
*get the x coordinate of a point attribute* - get_y -
*get the y coordinate of a point attribute* - dist(ance) -
*calculate the distance between two point sets* - sq(ua)r(e)dist(ance) -
*calculate the square distance between two arrays of points* - bg_buffer_point -
*creates a buffer polygon for each point in a pointset* - point -
*DEPRECIATED: make a point attribute based on an X and Y attribute*

## polygon

- area -
*calculates the surface of each polygon* - centroid
- centroid_or_mid -
*the centroid if it is located within a polygon or else a mid-point of a polygon.* - poly2grid -
*a grid representation of polygons* - poly2grid_untiled -
*a grid representation of polygons* - lower_bound -
*the lowest X and Y values of the points in each polygon* - upper_bound -
*the highest X and Y values of the points in each polygon* - center_bound -
*the center X and Y values of the points in each polygon* - points2polygon
- sub-(difference) -
*a cutout of a polygon in another polygon, where both domains match or one is void* - mul-(polygon-intersection) - the
*overlap of two arrays of polygons, where both domains match or one is void* - add-(union) -
*the element-by-element union of two polygons, where both domains match or one is void* - box_connectivity -
*domain unit with the connected polygons based on their bounding box (this should be less precise but faster than polygon_connectivity)*

#### Operators based on the boost-polygon library (usually slower than the _bg__-variants, and can only process integer coordinates):

- bp_split_polygon (or old syntax split_polygon) -
*domain unit with all single polygons* - bp_split_union_polygon (or old syntax split_partitioned_union_polygon) -
*combination of split_polygon and partitioned_union_polygon* - polygon-inflated -
*increases each polygon* - polygon-deflated -
*decreases each polygon* - polygon_connectivity -
*domain unit with the connected polygons* - bp_union_polygon (or old syntax union_polygon-(dissolve) or partitioned_union_polygon-(dissolve-by-attribute)) - *remove lines of adjacent polygons, optionally grouped by a relation**
- bp_overlay_polygon (or old syntax overlay_polygon
- [[bp_polygon]]

*Several boost polygon functions can be combined in a single operator; for the full list of those combinations, see here*

#### Operators based on the boost-geometry library (usually faster and can process float64 (a.k.a. double) coordinates):

- bg_simplify_single_polygon -
*simplify the geometry of a single polygon, see for documentation: bg_simplify_multi_polygon* - bg_simplify_multi_polygon -
*simplify the geometry of a multi polygon* - bg_buffer_single_polygon -
*creates a buffer polygon for each single polygon; see for documentation: bg_buffer_multi_polygon* - bg_buffer_multi_polygon -
*creates a buffer polygon for each multi polygon* - bg_outer_single_polygon -
*selects only the outer ring of a single polygon; see for documentation: bg_outer_multi_polygon* - bg_outer_multi_polygon -
*selects only the outer ring of a multi polygon* - bg_intersect -
*intersect the polygon arguments, where both domains match, or one is void* - bg_difference -
*takes the difference of the polygon arguments, where both domains match or one is void* - bg_union -
*union the polygon arguments, where both domains match or one is void* - bg_xor -
*xor the polygon arguments, where both domains match or one is void* - bg_overlay_polygon -
*see overlay_polygon* - bg_simplify_polygon - DEPRICIATED
*simplify the geometry of a polygon* - bg_split_polygon
- bg_union_polygon
- bg_split_union_polygon
- [[bg_polygon]]

*For examples, see here.*

## points/arcs

- dyna_point / dyna_point_with_ends -
*configures a point set for an arc on an equal distance* - dyna_segment / dyna_segments_with_ends -
*configures a segment set for an arc on an equal distance*

## points/polygons

- point_in_polygon -
*index number of the polygon in which a point is located* - point_in_ranked_polygon -
*index number of the polygon in which a point is located, using a ranking in case a polygon is located in multiple polygons* - point_in_all_polygons -
*relation between index numbers of the polygons in which points are located* - sequence2points -
*all vertices of each arc/polygon as separate points* - points2sequence -
*constructs arc/polygon from vertices*

## arc/polygon

- arc_length
- mls_length
- split_multi_linestring
- arc2segm
*- divides an arc/polygon data item into segments* - bg_simplify_linestring -
*simplifies the geometry of an arc* - bg_buffer_linestring -
*creates a buffer polygon for each arc* - bg_buffer_multi_point-
*creates a buffer polygon for each coordinate of the arc/polygon*

## points/arcs/polygons

### conversion

- rd2latlongwgs84 -
*converts coordinates from RD to LatLongWgs84* - latlongwgs842rd-
*converts coordinates from LatLongWgs84 to RD* - rd2latlongge-
*converts coordinates from RD to LatLongGE* - rd2latlonged50-
*converts coordinates from RD to LatLongEd50* - rd2latlong-
*converts coordinates from RD to LatLong*