mauricewijnia / nova-maps-address
一个 Laravel Nova Google Maps 字段。
v1.3.0
2020-11-23 08:42 UTC
Requires
- php: >=7.1.0
- laravel/nova: *
This package is auto-updated.
Last update: 2024-09-23 16:47:04 UTC
README
Nova Maps Address 是一个 Nova 字段,允许用户使用 Google Places API 选择地址并将其存储在 JSON 列中。
目录
安装
要安装该字段,只需运行
composer require mauricewijnia/nova-maps-address
您需要一个可以访问 Maps、Places 和 Geocoding API 的 Google Maps API 密钥。您可以将密钥放置在 .env
文件中,如下所示
NOVA_MAPS_ADDRESS_KEY="your_key_here"
使用
此字段将数据存储为 JSON 格式在您的列中,因此我们需要将我们的列转换为数组。
要将字段添加到您的资源中,您可以这样做
use Mauricewijnia\NovaMapsAddress\MapsAddress; ... public function fields(Request $request) { return [ ... MapsAddress::make(__('Address'), 'address'), ... ]; }
在我们的模型中
protected $casts = [ 'address' => 'array' ]
生成的数据将具有以下格式
{
street_name: string,
street_number: string,
postal_code: string,
city: string,
country: string,
formatted_address: string,
latitude: float,
longitude: float
address_components: array // https://developers.google.com/maps/documentation/javascript/geocoding#GeocodingAddressTypes
}
选项
您可以通过调用相应的选项方法来更改地图的一些设置
MapsAddress::make(__('Address'), 'address') ->zoom(5) ->center(['lat' => 55.5, 'lng' => 5.5]) ->types(['address' ,'establishment']);
您也可以将参数传递给 Map js 请求,以及地图/自动完成/地理编码器类的所有可用选项。例如,指定语言和区域并过滤组件
MapsAddress::make(__('shop_admin.places.address'), 'address')->types([]) ->scriptUrlParams(['region' => 'jp', 'language' => 'ja']) ->autoCompleteOptions(['componentRestrictions' => ['country' => ['jp']]]) ->mapOptions(['componentRestrictions' => ['country' => ['jp']]])