Skip to content

maycolmunoz/moon-leaflet

Repository files navigation

🌍 MoonLeaflet — Leaflet for MoonShine Laravel Admin Panel

Latest Version on Packagist Total Downloads License

MoonLeaflet adds interactive map support to MoonShine. It allows users to select coordinates directly from a map or display multiple locations visually with Leaflet.

  • Map field with draggable marker
  • Multiple available map layers
  • Works in Form, Detail, and Index views
  • Component mode with multiple markers
  • Optional user geolocation support
  • Customizable zoom, drag, and layer

🧱 Example Previews

Field Component
Field Example Component Example

Support MoonShine versions

MoonShine MoonLeaflet
4.0+ 4.0

🧩 Installation

composer require maycolmunoz/moon-leaflet

🚀 Usage

Field

use MaycolMunoz\MoonLeaflet\Fields\LeafletField;

LeafletField::make('Location') // label
    ->initialPosition(latitude: 40.7580, longitude: -73.9855) //initial position
    ->columns('latitude', 'longitude') // columns in database
    ->draggable(true) // draggable market (optional) default is true

Component

use MaycolMunoz\MoonLeaflet\Components\LeafletMap;

LeafletMap::make('Business Locations') // label
    ->initialPosition(latitude: 40.7580, longitude: -73.9855) //initial position
    ->items(fn () => Business::all() 
    ->map(function (Business $business) {
        return [
            'name' => $business->name,
            'latitude' => $business->latitude,
            'longitude' => $business->longitude,
        ];
    })->toArray()) // Each item must include name, latitude, and longitude

💡 The map will attempt to use the user's location if geolocation is enabled.
If unavailable, it defaults to coordinates (0, 0).

🌍 Options for field and component

    ->layer('OpenStreetMap') // map layer (default: OpenStreetMap)
    ->minZoom(5) // minimum zoom (default: 5)
    ->maxZoom(18) // maximum zoom (default: 18)
    ->zoom(14) // initial zoom (default: 14)

🌍 Available Map Layers

Layer Name
OpenStreetMap
OpenTopoMap
CartoDB Dark Matter
CartoDB Positron
CartoDB Voyager
Esri WorldStreetMap
Esri Satellite

About

Integration of Leaflet with MoonShine to add interactive maps to your admin panel.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published