finds.dev← search

// the find

googlemaps/google-maps-services-go

★ 834 · Go · Apache-2.0 · updated Oct 2026

Go client library for Google Maps API Web Services

A Go client for Google's Maps web services, covering Geocoding, Elevation, Roads, Time Zone, Static Maps, and the legacy Directions, Distance Matrix, and Places APIs. Google has moved those three legacy APIs to Legacy status and the maintainers won't add the newer APIs here, so this fits keeping an existing Go service on the old endpoints more than starting new work.

- Rate limiting is built in. Requests go out at each service's expected QPS by default, and WithRateLimit overrides it. Hand-rolled sleep loops are a common and fragile alternative.

- Each endpoint has typed request and response structs. The URL signing lives in internal/signer.go with its own tests, so you don't reimplement the HMAC-over-decoded-key scheme for Static Maps yourself.

- Polyline encoding and decoding ship in the same package with a test file, so you don't need a separate dependency just to read Directions routes.

- Three of the APIs it wraps are Legacy, and the README says new APIs won't be added here and points to the googleapis Cloud Client Library for Go instead. Starting new code on this means a migration later.

- The Geocoding example in the README won't compile. It uses True instead of true, an unqualified LatLng instead of maps.LatLng, and the struct literal is missing a trailing comma before the closing brace. The docs were clearly not run against the code.

- The only built-in metrics reporter targets OpenCensus, which upstream has archived in favour of OpenTelemetry. Monitoring means either adopting a dead dependency or writing your own reporter against the interface.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →