// the find
spatial-go/geoos
A library provides spatial data and geometric algorithms
Geoos is a pure-Go spatial geometry library covering the usual GIS primitives: WKT/WKB/GeoJSON/GeoBuf encoding, spatial predicates via DE-9IM, overlay operations (union, intersection, difference), simplification, clustering, and spatial indexes. It's aimed at Go developers who need geometry processing without pulling in a CGo dependency on GEOS or GDAL.
The format support is genuinely broad — WKT, WKB, GeoJSON, GeoBuf, and CSV in one library is more than most Go alternatives offer. The spatial index selection (quadtree, kd-tree, HPR-tree with Hilbert encoding, interval R-tree) is solid and gives you real options depending on your data shape. Coordinate transform support including Mercator and Chinese datum offsets (GCJ-02/BD-09) is a practical inclusion that GEOS-based wrappers don't bundle. The DE-9IM relate implementation is comprehensive and well-tested, which is the hard part of getting spatial predicates right.
Last commit was July 2024 and the organization's external docs site (spatial-go.com) appears abandoned — a bad sign for a library where correctness of edge cases matters a lot and bugs need active fixing. No geodetic (spherical/ellipsoidal) support: everything is planar Cartesian, so anything involving real-world coordinates at scale will silently produce wrong answers without explicit projection handling by the caller. The overlay operations (union, intersection) are known to have edge-case failures in polygon clipping — there are open issues and test files with 'copy 2', 'copy 3' variants that suggest workarounds rather than fixes. The LGPL-2.1 license is a practical problem for anyone linking this statically into a proprietary binary.