EveryMap-RS
A modular, type-safe Rust wrapper for geospatial APIs across HERE Technologies, Google Maps, TomTom, MapBox, and Radar. EveryMap-RS uses domain-driven design: 10 geospatial capabilities (search, routing, isolines, map matching, tour planning, traffic, tiling, positioning, attributes, and imaging) are defined as traits in everymap-core and implemented by per-provider crates — switch providers by changing one line of code.
- Repository: https://github.com/angoratek/everymap-rs
- Core API docs: https://docs.rs/everymap-core
- Other crates:
everymap-core·everymap-providers-here·everymap-providers-google·everymap-providers-tomtom·everymap-providers-mapbox·everymap-providers-radar·everymap-cli
everymap-providers-google
Google Maps provider for EveryMap-RS — geocoding, routing, map matching, positioning, attributes, and static maps.
Domain coverage
| Domain | Core trait | Supported |
|---|---|---|
| Search | Geocoder |
✅ |
| Routing | Router |
✅ |
| Isoline | IsolineProvider |
— |
| Matching | RouteMatcher |
✅ |
| Tour | TourPlanner |
— |
| Traffic | TrafficProvider |
— |
| Tiling | TileProvider |
— |
| Positioning | NetworkPositioner |
✅ |
| Attributes | AttributeProvider |
✅ |
| Imaging | MapImageProvider |
✅ |
Unsupported domains (GoogleIsoline, GoogleTraffic, GoogleTourPlanner, GoogleTileProvider) return a clear UnsupportedDomain error.
Installation
Quick start
use ApiKeyProvider;
use ;
use GoogleClient;
use GoogleGeocoder;
use Arc;
async
Provider-specific features
Extension traits: GoogleAttributeExt (Roads API speed limits) and GooglePositionerExt (Geolocation API with cell-tower and Wi-Fi inputs).
Routing uses the legacy Directions API (the recommended Routes API v2 upgrade is on the roadmap). Unsupported option fields are never silently dropped — unsupported combinations emit log::warn! or are handled post-response (e.g. geocode limit).