tareq-alqadi/filament-map-picker

在 Filament 应用程序中使用基于地图的界面轻松选择和检索地理坐标。

v3.2.0 2024-06-16 12:28 UTC

This package is auto-updated.

Last update: 2024-09-16 13:02:56 UTC


README

Latest Version on Packagist Total Downloads Software License

为 Filament 定制的字段,让您轻松在地图上选择位置并检索地理坐标。

270298161-46b97f72-518b-40c5-963b-8e9d39d77d67

简介

地图选择器是 Filament 定制的字段,旨在简化在地图上选择位置并获得其地理坐标的过程。

  • 功能包括
    • 支持 OpenStreetMap 集成的 Filament-v3 字段
    • 在标记移动完成后实时接收坐标
    • 根据您的喜好定制控件和标记外观
  • 最新版本的 PHP 和 Filament
  • 应用最佳实践

支持的地图

地图选择器目前支持以下地图

  1. 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。您也可以简单地创建一个带有“增强”标签的问题。别忘了给项目加星!再次感谢!

  1. 复制项目
  2. 创建您的功能分支(git checkout -b feature/AmazingFeature
  3. 提交您的更改(git commit -m 'Add some AmazingFeature'
  4. 将更改推送到分支(git push origin feature/AmazingFeature
  5. 打开 pull request