Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. go-geoindex

go-geoindex

MITGo

A Go library for fast geospatial indexing with K-nearest neighbor and range queries using a grid-based approach.

GitHubGitHub
361 stars46 forks0 contributors

What is go-geoindex?

Geo Index is a Go library for fast geospatial indexing and querying, using a grid-based system to partition the Earth's surface into cells. It solves the problem of efficiently tracking and querying large sets of geographic points, such as drivers or customer locations, with support for K-nearest neighbor searches and range queries.

Target Audience

Go developers building location-aware applications like ride-sharing services, real-time mapping, logistics tracking, or any system requiring fast spatial lookups on large datasets.

Value Proposition

Developers choose Geo Index for its high performance, simple API, and specialized index types (including expiring and clustering variants) that are optimized for real-time geospatial operations without external dependencies.

Overview

Go native library for fast point tracking and K-Nearest queries

Use Cases

Best For

  • Building ride-sharing or delivery apps that need to find nearest available drivers
  • Creating real-time maps with clustering for large point datasets (e.g., 100K+ points)
  • Implementing location-based services with fast range queries for geographic filtering
  • Tracking expiring geospatial data like temporary events or short-lived requests
  • Developing logistics or fleet management systems requiring efficient spatial indexing
  • Adding geospatial search capabilities to Go applications without heavy database overhead

Not Ideal For

  • Projects requiring complex spatial queries beyond rectangles, such as polygon or circular range searches
  • Applications needing built-in persistence or database integration for geospatial data
  • Systems that require advanced geospatial algorithms like shortest path calculation or Voronoi diagrams

Pros & Cons

Pros

High Performance

Benchmarks show operations in microseconds, handling up to 100K+ points efficiently, as evidenced by the provided performance data in the README.

Flexible Data Models

Allows custom point types by implementing a simple interface (Lat, Lon, Id methods), making it easy to integrate with existing Go structs like Driver.

Multiple Index Types

Supports points, counts, and clustering indexes with optional expiration, enabling real-time use cases such as expiring driver locations or clustered maps.

Simple API

Offers a minimal, idiomatic Go API with clear methods like Add, Remove, KNearest, and Range, as shown in the code examples.

Cons

Limited Documentation

The README directs users to an external blog for detailed descriptions, indicating sparse on-site documentation that might hinder quick adoption.

Grid Precision Issues

Uses a fixed grid resolution; queries near cell edges may have accuracy limitations, and it doesn't natively handle spherical geometry for global applications.

No Built-in Persistence

Indexes are in-memory only, requiring developers to implement external storage solutions for data durability across application restarts.

Frequently Asked Questions

Quick Stats

Stars361
Forks46
Contributors0
Open Issues2
Last commit8 years ago
CreatedSince 2015

Tags

#location-based-services#go-library#spatial-queries#geospatial-indexing#performance

Built With

G
Go

Included in

Go169.1k
Auto-fetched 18 hours ago

Related Projects

gotagota

Gota: DataFrames and data wrangling in Go (Golang)

Stars3,269
Forks290
Last commit3 years ago
hyperlogloghyperloglog

HyperLogLog with lots of sugar (Sparse, LogLog-Beta bias correction and TailCut space reduction) brought to you by Axiom

Stars1,045
Forks84
Last commit7 months ago
go-rquadgo-rquad

:pushpin: State of the art point location and neighbour finding algorithms for region quadtrees, in Go

Stars141
Forks9
Last commit4 years ago
gogugogu

A comprehensive, reusable and efficient concurrent-safe generics utility functions and data structures library.

Stars110
Forks9
Last commit3 years 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