A Go library for fast geospatial indexing with K-nearest neighbor and range queries using a grid-based approach.
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.
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.
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.
Go native library for fast point tracking and K-Nearest queries
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Benchmarks show operations in microseconds, handling up to 100K+ points efficiently, as evidenced by the provided performance data in the README.
Allows custom point types by implementing a simple interface (Lat, Lon, Id methods), making it easy to integrate with existing Go structs like Driver.
Supports points, counts, and clustering indexes with optional expiration, enabling real-time use cases such as expiring driver locations or clustered maps.
Offers a minimal, idiomatic Go API with clear methods like Add, Remove, KNearest, and Range, as shown in the code examples.
The README directs users to an external blog for detailed descriptions, indicating sparse on-site documentation that might hinder quick adoption.
Uses a fixed grid resolution; queries near cell edges may have accuracy limitations, and it doesn't natively handle spherical geometry for global applications.
Indexes are in-memory only, requiring developers to implement external storage solutions for data durability across application restarts.