tareq-alqadi / filament-map-picker
在 Filament 应用程序中使用基于地图的界面轻松选择和检索地理坐标。
v3.2.0
2024-06-16 12:28 UTC
Requires
- php: ^8.1|^8.2|^8.3
- filament/support: ^3.0
- illuminate/contracts: ^10.0|^11.0
- spatie/laravel-package-tools: ^1.15.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.9
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
README
为 Filament 定制的字段,让您轻松在地图上选择位置并检索地理坐标。
简介
地图选择器是 Filament 定制的字段,旨在简化在地图上选择位置并获得其地理坐标的过程。
- 功能包括
- 支持 OpenStreetMap 集成的 Filament-v3 字段
- 在标记移动完成后实时接收坐标
- 根据您的喜好定制控件和标记外观
- 最新版本的 PHP 和 Filament
- 应用最佳实践
支持的地图
地图选择器目前支持以下地图
- Open Street Map(OSM)
根据需要和测试,将向包中添加额外的地图选项。
安装
您可以通过 Composer 轻松安装此包
composer require dotswan/filament-map-picker
基本用法
资源文件
<?php namespace App\Filament\Resources; use Filament\Resources\Resource; use Filament\Resources\Forms\Form; use Dotswan\MapPicker\Fields\Map; ... class FilamentResource extends Resource { ... public static function form(Form $form) { return $form->schema([ Map::make('location') ->label('Location') ->columnSpanFull() ->afterStateUpdated(function (Get $get, Set $set, ?string $old, ?array $state): void { $set('latitude', $state['lat']); $set('longitude', $state['lng']); }) ->afterStateHydrated(function ($state, $record, Set $set): void { $set('location', ['lat' => $record->latitude, 'lng' => $record->longitude]); }) ->liveLocation() ->showMarker() ->markerColor("#22c55eff") ->showFullscreenControl() ->showZoomControl() ->draggable() ->tilesUrl("http://tile.openstreetmap.de/{z}/{x}/{y}.png") ->zoom(15) ->extraTileControl([]) ->extraControl([ 'zoomDelta' => 1, 'zoomSnap' => 2, ]) ]); } ... }
许可证
MIT 许可证 © Dotswan
安全
我们非常重视安全性。如果您发现任何错误或安全问题,请通过我们的 GitHub 问题跟踪器
帮助我们维护安全的项目。您也可以直接通过 tech@dotswan.com 联系我们。
贡献
我们欢迎贡献!贡献是开源社区成为学习、灵感和创作的绝佳场所的原因。您所做的任何贡献都将受到高度赞赏。
如果您有改进此项目的建议,请复制仓库并创建一个 pull request。您也可以简单地创建一个带有“增强”标签的问题。别忘了给项目加星!再次感谢!
- 复制项目
- 创建您的功能分支(
git checkout -b feature/AmazingFeature
) - 提交您的更改(
git commit -m 'Add some AmazingFeature'
) - 将更改推送到分支(
git push origin feature/AmazingFeature
) - 打开 pull request