forked from https://packagist.org/packages/sadiq/filament-gmap-location-picker, updated to work with Filament >=3.0
You can install the package via composer:
composer require osenco/filament-google-map-location-picker
Optionally, you can publish the config using
php artisan vendor:publish --tag="filament-google-map-location-picker-config"
<?php
return [
'google_map_key' => "",
];
add location column to database
...
Schema::table('table_name', function (Blueprint $table) {
$table->json("location")->nullable();
});
...
use Yemenpoint\FilamentGoogleMapLocationPicker\Forms\Components\LocationPicker;
...
public static function form(Form $form): Form
{
return $form->schema([
LocationPicker::make('location')
->default(json_encode(["lat" => 15.356893920277, "lng" => 44.173358011179]))//set default location
->defaultZoom(12)// set zoom
->setLocationCenter([
'lat' => 15.356893920277,
'lng' => 44.173358011179,
]) //set location center
->required()
->columnSpan(2),
]);
}
...
...
protected $fillable = [
"location"
];
...
...
function setLocationAttribute($value)
{
//replace lat_column_name and lng_column_name with your column names
$this->attributes['location'] = $value;
$_location = @json_decode($value,true);
$this->attributes['lat_column_name'] = data_get($_location,"lat");
$this->attributes['lng_column_name'] = data_get($_location,"lng");
}
...
The MIT License (MIT). Please see License File for more information.