A pure Go implementation of the OpenGIS Simple Feature Access Specification for 2D geometry modeling and spatial algorithms.
Simple Features is a 2D geometry library for Go that provides types modeling geometric shapes (like points, lines, and polygons) and algorithms for spatial operations. It implements the OpenGIS Simple Feature Access Specification, ensuring compatibility with industry-standard libraries like GEOS, JTS, and PostGIS. The library solves the problem of performing robust geospatial computations in Go with portability and ease of use.
Go developers working with geospatial data, such as those building mapping applications, GIS tools, or services requiring spatial analysis, who need a pure Go solution or interoperability with standards like PostGIS.
Developers choose Simple Features for its pure Go implementation, which avoids CGO dependencies for core functionality while leveraging battle-tested algorithms from JTS. It offers a comprehensive set of spatial operations, serialization formats, and optional CGO wrappers for extended GEOS and PROJ integration.
Simple Features is a pure Go Implementation of the OpenGIS Simple Feature Access Specification
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Core packages like 'geom', 'carto', and 'rtree' are implemented in pure Go, avoiding CGO dependencies and ensuring easy deployment across platforms without external library hassles.
Implements the OpenGIS Simple Feature Access Specification, guaranteeing compatibility with tools like PostGIS and GEOS for seamless data interchange and algorithm reliability.
Uses a Go port of JTS algorithms for overlay, relate, and buffer operations, providing battle-tested computations that are proven in widely-used libraries like GEOS.
Supports multiple formats including WKT, WKB, GeoJSON, and TWKB, enabling flexible input/output for integration with various geospatial systems and APIs.
To access advanced features via GEOS or PROJ wrappers, users must install external C libraries and enable CGO, which complicates setup, limits cross-compilation, and adds deployment overhead.
The library focuses exclusively on 2D operations, so projects needing 3D spatial analysis (e.g., for terrain or volumetric data) must look elsewhere or use complementary tools.
While portable, the pure Go implementation may not match the raw speed of optimized C libraries like GEOS for heavy-duty spatial computations, potentially impacting latency in high-throughput scenarios.