bagusindrayana / laravel-maps
set mapbox and leaflet map initiation from within laravel
v0.2.2
2022-01-02 00:22 UTC
This package is auto-updated.
Last update: 2024-11-06 18:58:02 UTC
README
Demo : https://laravel-maps-demo.herokuapp.com/
Installation
composer require bagusindrayana/laravel-maps
Add LaravelMapServiceProvider::class to config/app.php
'providers'=>[ //.... Bagusindrayana\LaravelMaps\LaravelMapsServiceProvider::class, //... ],
publish provider
php artisan vendor:publish --provider=Bagusindrayana\LaravelMaps\LaravelMapsServiceProvider
Usage
in controller
$map = LaravelMaps::leaflet('map') ->setView([51.505, -0.09], 13); return view('your-view',compact('map'));
in view
<html> <head> <title>My Map</title> {!! @$map->styles() !!} </head> <body> {!! @$map->render() !!} {!! @$map->scripts() !!} </body> </html>
Leaflet
Features
- marker
- circle
- polygon
- geojson
- basic event and method
Basic Usage
//'map' is variable name will be use in javascript code $map = LaravelMaps::leaflet('map') ->setView([51.505, -0.09], 13) ->addMarker(function(LeafletMarker $marker){ return $marker ->latLng([51.5, -0.09]) ->bindPopup('<b>Hello world!</b><br>I am a popup.'); }) ->addCircle(function(LeafletCircle $circle){ return $circle ->latLng([51.508, -0.11]) ->options([ 'radius'=>500, 'color'=>'red', 'fillColor'=>'#f03', 'fillOpacity'=>0.5 ]) ->bindPopup("I am a circle."); }) ->addPolygon(function(LeafletPolygon $polygon){ return $polygon ->latLng([ [51.509, -0.08], [51.503, -0.06], [51.51, -0.047] ]) ->bindPopup("I am a polygon."); }) ->addPopup("I am a standalone popup.",[51.513, -0.09]);
Method & Event
method are dynamic so you can use most method from original leaflet https://leafletjs.com/reference.html#map-method argument or parameter in method can be array,Closure,string,and RawJs class
Mapbox
Features
- marker
- geojson
- basic event and method
Basic Usage
//'map' is variable name will be use in javascript code $map = LaravelMaps::mapbox('map',[ "center"=>[106.827293,-6.174465], "zoom"=>13, ]); $map->on('load',function($m){ $m->addMarker(function(MapboxMarker $marker){ return $marker ->lngLat([51.5, -0.09]) ->setPopup('<b>Hello world!</b><br>I am a popup.'); }); });
Method & Event
method are dynamic so you can use most method from original mapbox https://docs.mapbox.com/mapbox-gl-js/api/map/#map-instance-members argument or parameter in method can be array,Closure,string,and RawJs class