fahiem/filament-pinpoint
A Filament 4 & 5 location picker field with Google Maps or Leaflet.js (OpenStreetMap) support, offering search, click-to-set and draggable markers, radius display, reverse geocoding, dark mode, and translations.
provider() can be set globally (.env) or per field, we can run Leaflet/OpenStreetMap for free, key-less usage in low-volume or cost-sensitive contexts and Google Maps only where Places Autocomplete quality matters. That is a per-workflow cost decision, not a one-way architectural commitment.latField, lngField), plus optional radius and address fields. This means we are not buying into a geo database, PostGIS, or a vendor schema. If we later need spatial queries, polygons, or routing, we migrate the consumer of the data — not the stored data.readOnly() / readOnlyOn('view') and PinpointEntry (single and multi-pin with fitBounds, custom colors/icons/info HTML) let us ship map display in view/infolist pages without a second front-end effort — useful for ops dashboards and internal "where is it" screens.Consider adopting when:
Look elsewhere (or build) when:
Adoption gate (recommended): a 1-day spike — install, wire one field to real columns, test in a Repeater, test dark mode and mobile, confirm reverse-geocode accuracy in our top two markets. Proceed only if that passes.
For executives: We can add map-based location entry to the admin panel in roughly a day of integration instead of a multi-week build, using a free, MIT-licensed component. It supports two map backends so we can start with zero map API cost and no API key (OpenStreetMap) and switch to Google only for workflows where search quality justifies the per-request fee. Coordinates are stored in plain database columns, so there is no data lock-in and reversing the decision later is cheap. It also gives us auto-filled address fields, optional service-radius capture, read-only map views for reporting, and multi-location support — covering the location needs of branch records, delivery areas, property/venue listings, and CRM address enrichment. Recommended: adopt for internal/admin use, run a one-day technical spike, and default to the free provider until usage data justifies Google.
For engineering: Filament 4/5 form field + infolist entry. Two providers behind one API (provider('google'|'leaflet')), Nominatim/Places search, draggable marker, reverse geocoding mapped to explicitly named columns, draggable radius circle persisted in meters, Repeater-safe field paths, read-only modes, dark mode, 5 locales. Risks to manage: single maintainer and low adoption (pin the version; keep usage isolated behind our own field wrapper so a fork or swap is a one-file change); Google key handling and per-call billing; Nominatim rate/usage policy in production (self-host or use a paid geocoder if volume grows); and verify address-component mapping per market since the field set — province/city/district/village — is regionally biased. No migrations or schema opinions are imposed, which keeps the integration shallow and the exit cheap.
How can I help you explore Laravel packages today?