- How do I install doode/filament-map-picker in a Laravel Filament app?
- Install it with Composer, register the plugin via the ->plugin() method in your panel provider, then add MapPicker::make('location') to a resource or form schema. For a Filament-fluent developer the realistic effort is about half a day including a smoke test. The mechanical steps are cheap; the real work is deciding how the field persists state in your database.
- Which Laravel, Filament, Livewire, and PHP versions does it support, and is Filament v4 supported?
- The package targets Laravel 10 and 11 with Filament v3 panels, Livewire 3, and PHP 8.1 or newer. Filament v4 support is not confirmed here, so check the composer.json constraints before committing. Because form-field internals like asset registration and Alpine state hydration churn between Filament majors, a plugin this young is unlikely to track a v4 transition on your timeline, and it may become a blocker mid-migration.
- What does the map picker field actually save: GeoJSON, a JSON blob, or separate latitude and longitude columns?
- The persisted state shape is not documented in the available evaluation and must be verified from source before you commit. The likely options are a single JSON or geometry column, a GeoJSON string, or fan-out to paired lat/lng columns. That choice propagates into schema design, API serialization, and every downstream spatial query, so confirm it rather than assume.
- Does the field support polygons, polylines, and circles, or only a single point pin?
- The component layers Geoman.io draw tools on top of a Leaflet map, which suggests support beyond a simple point pin. Whether arbitrary geometry such as polylines, polygons, and circles is exposed and configurable per field is not confirmed in the assessment. Check the field's configuration API to see if you can restrict a field to point-only.
- Are Leaflet and leaflet-geoman assets bundled or loaded from a CDN, and can I vendor them for CSP or air-gapped environments?
- The evaluation indicates Leaflet and leaflet-geoman-free are typically injected via CDN through the plugin's asset manager. That is a hard external runtime dependency on every form render plus a supply-chain surface some organizations will not accept. Vendoring for air-gapped or strict Content Security Policy environments is not evidenced, so verify whether assets can be published and served locally. Also confirm the license of the Geoman distribution you end up shipping, since the package itself is MIT.
- Does the package validate coordinates or handle geocoding and reverse geocoding?
- No. There is no server-side geocoding, reverse geocoding, geometry sanity validation, spatial indexing, or coordinate transformation in the package. It gives admins a way to drop a pin or draw a shape and persist the result. Any validation of latitude and longitude ranges or geometry correctness is your build, so add rules to the form or a model observer.
- Is doode/filament-map-picker production-ready and actively maintained?
- It is very young: first release around August 2025, roughly seven stars, zero dependents, and a single maintainer. There is no evidenced test suite or CI, and no community cohort to absorb breakage, making it an effectively sole-source dependency. You would be among the earliest serious adopters and should expect to find edge cases and possibly fork it. A documented upgrade or deprecation policy is also not evident.
- Can I use the default OpenStreetMap tiles in production with this package?
- Default OpenStreetMap tile usage is not licensed for production traffic volumes. This is a policy and compliance risk that lands on your team, not the package. Plan to configure a commercial tile provider or self-hosted tile server before going live beyond internal or low-volume usage.
- How does this compare to building a custom Filament map field or using a dedicated geo package?
- This package is a Filament form field that renders a Leaflet map and syncs geometry back into Livewire state; it is not a geo backend. If your requirements stop at letting an admin pick or draw a location and persist it, adopting it saves you the component work. Anything involving geocoding, spatial queries, or geometry validation would be your build either way, so a custom field wrapping Leaflet may be worth it if you need tighter control over assets and persistence.
- How do I migrate an existing latitude and longitude schema to the map picker field?
- You have two paths. You can adopt the package's native shape, such as a single JSON or geometry column, and add generated or virtual lat/lng accessors for existing read paths, which is cleaner long term but costs a backfill and a read-path audit. Alternatively you can keep your split decimal columns and bridge the field with afterStateUpdated() and dehydrateStateUsing() callbacks. Confirm the actual persisted shape first, because the bridge hooks depend on it.