// the find
codingsince1985/geo-golang
Go library to access geocoding and reverse geocoding APIs
A Go library that wraps 15+ geocoding APIs behind a single interface, so you can swap providers or chain them for fallback/quota pooling. Aimed at Go developers who need geocoding without vendor lock-in and want to spread requests across free tiers.
Each provider implementation is genuinely small (~50 LoC), making it easy to audit or add a new one. The chained geocoder is the real value — fallback logic for free-tier quota exhaustion is handled at the library level, not your application code. The interface is minimal and consistent: Geocode/ReverseGeocode returning a typed Address struct means switching providers really is one line. Tests exist for every provider, which is more than most wrapper libraries bother with.
Several included providers are dead or unreliable — Mapzen shut down years ago, Yandex returns wrong coordinates in the example output (Spain instead of Australia), and geocod.io is US-only but presented as general-purpose without that caveat. The Address struct normalizes fields across all providers but the normalization is lossy: comparing the output examples shows wildly different data quality with no way to know which fields are reliable for a given provider. No rate limiting, retry logic, or context cancellation support — you get a bare HTTP call, and anything beyond that is your problem. Last meaningful activity suggests maintenance is minimal, so new API versions or broken providers will silently return nil.