What problem does it solve?
Integrates GPS location, place autocomplete, place detail lookup, reverse geocoding, and route/polyline rendering into a reusable Flutter feature so teams don't reimplement map logic across ride-hailing and food modules. It centralizes session token handling and backend-proxied API calls to keep sensitive keys out of the client and reduce API costs.
Core Features & Use Cases
- Place Autocomplete & Detail: Debounced session-tokened autocomplete with detail lookup to populate pickup and destination fields.
- Map Picker & Reverse Geocode: Full-screen MapPickerPage with drag-to-select center pin and reverse geocoding on drag end for manual location selection.
- Routing & Driver Tracking: Get route polylines and decode them for drawing on the map, animate camera, and update animated driver markers from tracking streams.
- Permissions & Resilience: Location permission handling, service-disabled states, and clear repository/usecase separation for testing and backend proxying.
- Use Case Example: In a ride-booking flow, present MapPickerPage, allow the user to search or drag the map to pick a point, then fetch place details and route to the driver.
Quick Start
Use the map skill to open the MapPickerPage, let the user search or drag to choose a location, and return the selected PlaceEntity to the caller.