Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Map Multi Polygon Laravel Package

wm/map-multi-polygon

A Laravel/PHP package for managing multiple polygons on maps. Define, store, and render multi-polygon geometries with coordinate handling, boundary data, and map integration support, simplifying location-aware features and spatial datasets.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Territory and zone management features. The most common customer-facing ask this unblocks is "let operations draw areas on a map" — delivery zones, service areas, sales territories, franchise boundaries, insurance regions, coverage maps. Multi-polygon (rather than single-polygon) support matters for regions that are genuinely discontiguous: islands, islands-plus-mainland, split routes, cities bisected by a river.
  • Build vs. buy for the admin editing layer. Drawing on a map looks trivial to stakeholders and is consistently underestimated by engineering: a Leaflet/Mapbox component, draw/edit controls, multiple shapes per record, vertex editing, GeoJSON serialization, coordinate validation, and Nova field lifecycle wiring. A working Nova field compresses what is typically two to four days of Vue + mapping-library work into an afternoon of integration. That is the entire business case.
  • Feasibility proof for roadmap items. If a spatial-management capability is on the roadmap but unscoped, this package is evidence that the editing experience is a solved pattern. The real remaining work is downstream: spatial storage (JSON column vs. PostGIS/MySQL spatial types), point-in-polygon address assignment, geocoding, and reporting. This package does not solve those, which is worth naming early so the roadmap estimate does not get anchored to "it's just a field."
  • Data modeling decisions. Adoption implies GeoJSON MultiPolygon in a JSON column, which constrains later analytics: whether BI tools can consume zones directly, whether you can do efficient "which zone contains this address" lookups, and whether you'll need a migration to a spatial database when volume grows. Choose this with the two-year query story in mind, not just the admin demo.
  • Use cases worth scoping: logistics and field service routing, real estate listing boundaries, telecom coverage, market segmentation, and any product with a "define your own region" setting.

When to Consider This Package

Consider it when:

  • You are already standardized on Laravel Nova for internal administration. This is a hard dependency; outside Nova the package has no value.
  • The editing requirement is genuinely multi-polygon and the storage layer can tolerate GeoJSON in JSON.
  • You need it fast — a demo, an internal tool, a first release of a zone editor — and are comfortable vendoring or forking the source rather than consuming it as a trusted dependency.
  • Your team is fluent in Laravel and Vue and can read the field's source in an hour to confirm behavior around validation, empty states, and prop serialization.

Look elsewhere or build in-house when:

  • You are not on Nova (Filament, Inertia, Livewire, standalone React) — nothing here transfers.
  • You need spatial queries at scale, server-side polygon validation, polygon intersection/overlap detection, or address-to-zone assignment as first-class features. Those belong in PostGIS or a dedicated geo service, not in an admin field.
  • You require vendor support, an SLA, or security review of a maintained dependency with a release cadence you can rely on.
  • The team cannot absorb ownership. Zero stars, zero dependents, and a single maintainer are the salient facts. This is a reference implementation to adapt, not a library to composer require and forget. Budget for pinning the version, adding your own tests around serialization and validation, and being the maintainer when the next Laravel or Nova major lands.

A reasonable middle path: adopt it for the admin editing experience, wrap it behind your own field class so the mapping library can be swapped, and keep polygon geometry as a stable GeoJSON contract that a future spatial service can consume unchanged.

How to Pitch It (Stakeholders)

For executives: This is a small, low-cost accelerator for a recurring operational request — letting managers define service areas and territories visually in our admin panel. It removes several days of front-end mapping work at effectively no license cost, and it de-risks a capability that appears in multiple roadmap conversations. The caveat is honest and important: the package is a single-maintainer, zero-adoption open-source project, so we treat it as a head start we own and maintain internally, not as a strategic dependency. Adoption cost is measured in hours; the cost of replacing it later is measured in days. That asymmetry makes it a reasonable experiment with a clear exit.

For engineering: One Nova field, one JSON/GeoJSON column, one MultiPolygon contract. It saves you writing a Vue map component with draw and edit controls, multi-shape handling, and coordinate validation — work that is routinely underestimated. What it does not give you is spatial querying, polygon validation beyond the client, overlap detection, or geocoding; plan those separately and do not let the field's existence shrink that estimate. Recommended posture: fork or vendor it, pin the version, wrap it in our own field class, and add tests around serialization and validation so a Nova upgrade is a contained problem rather than a surprise.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource
noith/settings