Geometric functions - ObjectVision/GeoDMS GitHub Wiki
Geometric functions calculate with geometries (coordinates) of points, arcs or polygons
GeoDMS supports four geometry libraries with different trade-offs. geos is the recommended default for most tasks: it is fast, numerically robust, and supports float64 (dpoint) coordinates. boost geometry (prefix bg_) also supports float64 and can be used as a fallback. boost polygon (prefix bp_) is an older library that only handles integer coordinates (ipoint, spoint) but is still available. cgal (prefix cgal_) is an alternative that may be better suited for specific geometric operations as it is precise, but also much slower.
For most polygon and arc operations, a geos_ variant should be the first choice. For buffering of points, arcs and polygons, all four libraries provide equivalent operators; the geos_ variants are recommended unless there is a specific reason to use another.
Since GeoDMS 20.20.0 there is a fifth family, prefix dms_, implemented by GeoDMS itself as a snap-rounding sweep: dms_intersect, dms_union, dms_xor and dms_difference. It is the one to use on input that is not valid, rings that self-intersect, touch, overlap or do not close, which it reads under the even-odd rule, and it takes an optional grid size as the tolerance at which near-coincident vertices and slivers merge. It works on all six point types. See dms polygon operators for the family and Cleaning invalid polygons for a worked example.
See the sub-pages below for detailed operator lists: