emiliobravo/filament-google-maps-picker

一个Filament字段,用于根据谷歌地图获取坐标

dev-master 2022-06-25 18:30 UTC

This package is auto-updated.

Last update: 2024-09-25 23:19:29 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

一个基于谷歌地图获取坐标的Filament字段。

安装

您可以通过Composer安装此包

composer require emiliobravo/filament-google-maps-picker

您必须在您的.env文件中定义一个环境变量 GOOGLE_MAPS_API_KEY,其中包含您的 谷歌地图API密钥

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="filament-google-maps-picker-config"

这是已发布配置文件的内容

return [
    'google_maps_key' => env('GOOGLE_MAPS_API_KEY')
];

可选地,您可以使用以下命令发布视图

php artisan vendor:publish --tag="filament-google-maps-picker-views"

用法

在您的filament资源文件中

use EmilioBravo\FilamentGoogleMapsPicker\Forms\Components\LocationPicker;

在您的filament表单模式中

        LocationPicker::make('location')

这将显示一个简单的谷歌地图字段,其中有一个标记在纬度0和经度0。当您点击地图时,字段值和标记位置将更新为新的坐标。

Example 1

启用谷歌地图控件

使用以下方法启用谷歌地图控件

zoomControl(bool) (默认: false) 显示缩放控件,允许用户更改它

mapTypeControl(bool) (默认: false) 显示地图类型选择控件

scaleControl(bool) (默认: false) 显示地图比例控件

streetViewControl(bool) (默认: false) 显示地图街景控件

fullScreenControl(bool) (默认: false) 显示全屏控件

rotateControl(bool) (默认: false) 显示旋转控件

searchBoxControl(bool) (默认: false) 显示搜索框控件以搜索位置。选择后将更新字段值

geolocationControl(bool) (默认: false) 自定义控件以获取设备地理位置并使用它更新地图位置。它需要用户允许设备访问地理位置数据权限

coordsBoxControl(bool) (默认: false) 自定义控件,显示包含字段当前值(格式为纬度,经度)的文本输入

选项

zoom(int) (默认: 1) 以整数作为值并设置地图的初始缩放

minHeight(string) (默认: 50vh) 接受一个字符串来设置地图高度,必须是有效的CSS min-height。例如:80vh,30%,50px

mapTypeId(string) (默认: roadmap) 接受一个字符串:roadmap,satellite,hybrid,terrain

searchBoxPlaceholderText(string) (默认: Search Address) 接受一个字符串以自定义搜索框占位符文本

locationButtonText(string) (默认: My location) 接受一个字符串以自定义位置按钮文本

fixMarkerOnCenter(bool) (默认: false) 当用户拖动地图时,标记将移动到中心并更新字段值

default(array) (默认: ['lat' => 0,'lng' => 0]) 设置默认值

defaultToMyLocation(bool) (默认: false) 设置默认值为当前位置

在您的filament表单模式中

        LocationPicker::make('location')
            ->default(['lat' => 40.7587,'lng' => -73.9786])
            ->zoom(15)
            ->zoomControl()
            ->minHeight('60vh')
            ->mapTypeId('satellite')
            ->mapTypeControl()
            ->scaleControl()
            ->streetViewControl()
            ->fullScreenControl()
            ->rotateControl()
            ->searchBoxControl()
            ->searchBoxPlaceholderText('Type an address')
            ->geolocationControl()
            ->locationButtonText('Go to my location')
            ->defaultToMyLocation()
            ->coordsBoxControl()
            ->fixMarkerOnCenter()

这将显示包含所有可用选项的地图

Example 2

测试

composer test

更新日志

有关最近更改的更多信息,请参阅 更新日志

致谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅 许可证文件