doode/filament-map-picker
A Filament form field that lets users pick a location on an interactive map, saving latitude and longitude directly to your model. Drop it into any resource form for fast, accurate address or coordinate selection with minimal setup.
Build vs. buy for a seemingly trivial field. Capturing a latitude/longitude pair looks like a 30-minute task and is not. A production-grade picker needs a map tile provider, click-to-place, drag-to-adjust, marker re-hydration from existing DB values, form state round-tripping through Livewire, validation (null, out-of-range, out-of-bounds), and mobile touch behaviour. This package collapses that into a Filament form component, which lets you decide "adopt" instead of "schedule a sprint."
Feature scoping for location-aware surfaces. It directly unlocks or de-risks a class of features that otherwise get deferred:
Data model and roadmap implications. Because it captures drawn geometry, not just a point, it forces an early decision that echoes through the roadmap: do you persist a single point, a bounding box, or a full polygon/GeoJSON? That decision determines whether you later need PostGIS, a spatial index, and server-side point-in-polygon queries. Better to make it deliberately now than discover it when someone asks "which customers are inside this zone?"
Prioritisation signal. If your product has any physical-world dimension, a map picker is a low-effort, high-legibility feature — it demos well, it makes the admin panel feel finished, and it removes a recurring "we'll just type the coordinates in a text box" workaround that reliably produces bad data.
Risk containment. MIT-licensed, self-hosted, no vendor lock-in at the code level. The tile layer and the Geoman draw extension are the only external surfaces, and both are swappable, so this doesn't create a commercial dependency the way a Google Maps Platform integration would.
What v1.6.5 changes for the roadmap: nothing, and that's the point. This is a compatibility and assurance release, not a feature release: Laravel 10/11/12 support, plus new tests and QA. No new capabilities, no deprecations, no breaking changes flagged. The feature set the roadmap depends on — point, polygon, rectangle, circle capture — is unchanged. Treat the release as a confidence input, not a scope input.
Adopt when:
Look elsewhere or build when:
Practical due-diligence checklist before adoption: confirm the supported Filament version matrix (the release notes only cover Laravel); confirm the emitted data shape (lat/lng vs. GeoJSON vs. array); confirm what happens on edit/re-hydration of an existing geometry; verify the package identity and namespace — the v1.6.5 changelog resolves to vitormicillo/filament-map-picker, while earlier references used a different vendor prefix, so confirm the canonical repo before pinning; review the newly added tests to see what they actually cover (save/load, validation, geometry round-trip); check issue tracker and commit cadence; and pin the version. Fork it into your own namespace if the feature is on a revenue path.
For executives — one paragraph: We can add map-based location capture to the admin panel in days rather than weeks by adopting a small, MIT-licensed open-source component instead of building one. It gives operators a click-and-draw map to record an exact point, service area, or delivery zone, which unlocks locator, territory, and geo-fenced pricing features we've been deferring. There is no licence cost and no vendor lock-in. The latest release broadened framework compatibility and added automated tests, which improves confidence, though the project is still young with a single maintainer. We should treat it as a starting point we own rather than a dependency we rely on — engineering will vendor it and cover it with our own tests.
For engineering — the ask: Evaluate this as a Filament form component for geo-coordinate capture. It wraps Leaflet plus @geoman-io/leaflet-geoman draw tools (point, polygon, rectangle, circle) into a native field. v1.6.5 adds Laravel 10/11/12 support and a new test suite — review the tests, but note they were described as AI-assisted QA, so treat them as a floor rather than a guarantee. Before we commit: (1) confirm our Filament version is supported — the release notes only certify Laravel; (2) confirm the canonical repo/namespace, since the changelog and our notes disagree on the vendor prefix; (3) document the exact payload it emits and how it re-hydrates on edit; (4) decide our persistence target — plain lat/lng columns for the point case, or GeoJSON/PostGIS if we're shipping zones; (5) fork and pin it, and add integration tests around save/load and validation; (6) confirm the tile provider and attribution obligations. Estimate: roughly one day to spike, two to three days to productionise with tests, contingent on the persistence decision.
For design — the constraint: this is an operator-grade control inside the admin panel, not a consumer map experience. If the roadmap calls for customer-facing maps with search, geolocation, and curated basemaps, scope that separately — this package will not get us there.
How can I help you explore Laravel packages today?