A Nova field to place a marker on map to get coordinates then it reverse geocoding the coordinates to get a street address
You can install the package in to a Laravel app that uses Nova via composer:
composer require josrom/nova-map-address
Publish the package config file:
php artisan vendor:publish --provider="Josrom\MapAddress\FieldServiceProvider"
This is the contents of the file which will be published at config/map-address.php.
Add the following keys to your .env
and .env.example
:
MAP_ADDRESS_API_KEY=
Optional: Set map and address language
MAP_ADDRESS_LANGUAGE=es
If you need a Google Maps API key, you can create an app and enable Places API and create credentials to get your API key https://console.developers.google.com.
Add the below to Nova/{Model}.php resource:
use Josrom\MapAddress\MapAddress;
[
MapAddress::make('address'),
// You can set the initial map location. By default (Spain)
MapAddress::make('address')
->initLocation(38.261842, -0.6868031),
// You can set the location from the model
MapAddress::make('address')
->setLocation($this->latitude, $this->longitude),
// You can select the name of lat/lng fields. By default is lat/lng
MapAddress::make('address')
->setLatitudeField('latitude')
->setLongitudeField('longitude'),
// You can select what is the first result set in address field
MapAddress::make('address')
->setGoogleResultType('street_address'),
// You can also set the map zoom level. By default (4)
MapAddress::make('address')
->initLocation(38.261842, -0.6868031)
->zoom(12),
]
- Jose Vicente Orts: [email protected]
The MIT License (MIT). Please see License File for more information.