PHP code example of kpebedko22 / filament-yandex-map
1. Go to this page and download the library: Download kpebedko22/filament-yandex-map library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
->schema([
YandexMap::make('point')
// Set mode of geo-object. Always from config
// You are free to override them using plain values or closure
->apiKey('your_yandex_api_key')
->suggestApiKey('your_yandex_suggest_api_key')
->center([53.35, 83.75])
->zoom(12)
->lang('ru_RU')
// By default: 600px
->height('600px')
// Setup control buttons
->deleteBtnParameters(
new ButtonData(__('filament-yandex-map::control-buttons.delete')),
new ButtonOptions(
float: ButtonFloat::Right,
selectOnClick: false
),
)
->drawBtnParameters()
->editBtnParameters()
// Setup geo-object
->geoObjectOptions(new GeoObjectOptions())
->geoObjectProperties(new GeoObjectProperties())
// It's
// On the form
use Kpebedko22\FilamentYandexMap\Forms\Components\YandexMap;
use Kpebedko22\FilamentYandexMap\ValueObjects\Point;
use Kpebedko22\FilamentYandexMap\Enums\YandexMapMode;
YandexMap::make('point')
->mode(YandexMapMode::Placemark)
->formatStateUsing(static function (?Model $record) {
return $record
? (new Point($record->lat, $record->lng))->toArray()
: null;
}),
// CreatePage
protected function mutateFormDataBeforeCreate(array $data): array
{
$data['lat'] = $data['point']['lat'];
$data['lng'] = $data['point']['lng'];
unset($data['point']);
return parent::mutateFormDataBeforeCreate($data);
}
// EditPage
protected function mutateFormDataBeforeSave(array $data): array
{
$data['lat'] = $data['point']['lat'];
$data['lng'] = $data['point']['lng'];
unset($data['point']);
return parent::mutateFormDataBeforeSave($data);
}
YandexMap::make('point')
->mode(YandexMapMode::Placemark)
->deleteBtnParameters(
new ButtonData(__('filament-yandex-map::control-buttons.delete')),
new ButtonOptions(
float: ButtonFloat::Right,
selectOnClick: false
),
);
->drawBtnParameters(
new ButtonData(__('filament-yandex-map::control-buttons.draw')),
new ButtonOptions(float: ButtonFloat::Right),
);
->editBtnParameters(
new ButtonData(__('filament-yandex-map::control-buttons.edit')),
new ButtonOptions(float: ButtonFloat::Right),
);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.