Efficient Go library implementing OpenGeo Consortium-style geometry types for geospatial applications.
go-geom is a Go library that implements efficient geometry types following OpenGeo Consortium standards for geospatial applications. It provides comprehensive support for 2D and 3D geometries, encoding/decoding of common geospatial formats, and database integration capabilities. The library solves the problem of handling spatial data efficiently in Go applications with proper type safety and performance optimizations.
Go developers building geospatial applications, GIS systems, or location-based services that require efficient geometry manipulation and database integration. It's particularly useful for those working with PostGIS, GeoJSON, or other spatial data formats.
Developers choose go-geom for its efficient cache-friendly implementation, comprehensive format support, and seamless database integration. Unlike generic geometry libraries, it's specifically optimized for geospatial use cases with built-in protection against malicious inputs and support for industry standards.
Package geom implements efficient geometry types for geospatial applications.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses cache-friendly data structures optimized for performance, as detailed in the INTERNALS.md documentation linked in the README.
Supports encoding and decoding of multiple standards like GeoJSON, WKB, and EWKB, with dedicated packages listed for each format in the README.
Implements sql.Scanner and driver.Value interfaces, enabling direct use with databases such as PostGIS, as demonstrated in the provided examples.
Handles 2D, 3D, measures, and extra dimensions, making it versatile for various geospatial applications, as highlighted in the key features.
KML and WKT are encoding only, lacking decoding capabilities, which limits full interoperability with these formats as admitted in the README.
Protection against malicious inputs is disabled by default, requiring explicit configuration of wkbcommon.MaxGeometryElements to activate, which could be overlooked in deployment.
Primarily provides geometry types and basic functions, missing advanced GIS features like spatial indexing or visualization tools, necessitating additional libraries for full applications.