Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Machine Learning
  3. go-geom

go-geom

BSD-2-ClauseGo

Efficient Go library implementing OpenGeo Consortium-style geometry types for geospatial applications.

GitHubGitHub
970 stars113 forks0 contributors

What is go-geom?

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.

Target Audience

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.

Value Proposition

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.

Overview

Package geom implements efficient geometry types for geospatial applications.

Use Cases

Best For

  • Building Go-based GIS applications that require efficient geometry processing
  • Integrating spatial data with databases using standard SQL interfaces
  • Parsing and generating GeoJSON, KML, WKB, and other geospatial formats
  • Implementing 2D and 3D topology functions for spatial calculations
  • Developing location-based services that handle complex geometry operations
  • Creating geospatial data pipelines with format conversion capabilities

Not Ideal For

  • Projects not using the Go programming language
  • Applications requiring integrated map rendering or advanced GIS features like spatial joins
  • Teams looking for a complete geospatial API with built-in services and minimal setup

Pros & Cons

Pros

Efficient Internal Representation

Uses cache-friendly data structures optimized for performance, as detailed in the INTERNALS.md documentation linked in the README.

Broad Format Compatibility

Supports encoding and decoding of multiple standards like GeoJSON, WKB, and EWKB, with dedicated packages listed for each format in the README.

Seamless Database Integration

Implements sql.Scanner and driver.Value interfaces, enabling direct use with databases such as PostGIS, as demonstrated in the provided examples.

Multi-dimensional Geometry Support

Handles 2D, 3D, measures, and extra dimensions, making it versatile for various geospatial applications, as highlighted in the key features.

Cons

Incomplete Format Support

KML and WKT are encoding only, lacking decoding capabilities, which limits full interoperability with these formats as admitted in the README.

Manual Security Setup

Protection against malicious inputs is disabled by default, requiring explicit configuration of wkbcommon.MaxGeometryElements to activate, which could be overlooked in deployment.

Narrow Focus

Primarily provides geometry types and basic functions, missing advanced GIS features like spatial indexing or visualization tools, necessitating additional libraries for full applications.

Frequently Asked Questions

Quick Stats

Stars970
Forks113
Contributors0
Open Issues8
Last commit1 month ago
CreatedSince 2014

Tags

#geojson#geospatial#go-library#database-integration#gis#decoding#encoding#wkt#go#spatial-data#wkb#kml

Built With

G
Go

Included in

Machine Learning72.2k
Auto-fetched 1 day ago

Related Projects

S2 geometryS2 geometry

S2 geometry library in Go

Stars1,842
Forks194
Last commit2 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub