You can install it with Composer:
composer require yipikai/geolocation-bundle
This bundle use the api to the adresse.data.gouv.fr
Use Event Dispatcher
$geolocationEvent = new GeolocationEvent();
$geolocationEvent->setAddress("134 route de Vertou 44200 Nantes");
$eventDispatcher->dispatch($geolocationEvent, GeolocationEvent::EVENT_YIPIKAI_GEOLOCATION_RETRIEVE);
// Get Latitude
$latitude = $geolocationEvent->getLatitude();
// Get Longitude
$longitude = $geolocationEvent->getLongitude();
Use Service Container
$coordinates = $this->container->get('yipikai.geolocation')->retrieveByAddress("134 route de Vertou 44200 Nantes");
/**
* $coordinates = array:2 [
* "latitude" => 47.186543
* "longitude" => -1.528056
* ]
*/
...
use Yipikai\GeolocationBundle\Doctrine\Mapping as Geolocation;
class Object
{
...
/**
* @var string|null
* @Geolocation\AddressStreet()
*/
protected ?string $addressStreet = null;
/**
* @var string|null
* @Geolocation\AddressCity()
*/
protected ?string $city = null;
/**
* @var string|null
* @Geolocation\AddressPostalCode()
*/
protected ?string $postalCode = null;
/**
* @var string|null
* @Geolocation\CoordinateLatitude()
*/
protected ?string $latitude = null;
/**
* @var string|null
* @Geolocation\CoordinateLongitude()
*/
protected ?string $longitude = null;
...
}
Use Event Dispatcher
$object = new Object();
$object->setAddressStreet("134 route de Vertou");
$object->setCity("Nantes");
$object->setPostalCode("44200");
$geolocationEvent = new GeolocationEvent();
$geolocationEvent->setObject($object);
// hydrate auto latitude and longitude in to object
$geolocationEvent->setHydrateObject(true);
$eventDispatcher->dispatch($geolocationEvent, GeolocationEvent::EVENT_YIPIKAI_GEOLOCATION_RETRIEVE);
// Get Latitude
$latitude = $geolocationEvent->getLatitude();
// Get Longitude
$longitude = $geolocationEvent->getLongitude();
// Get Address
$address = $geolocationEvent->getAddress();
Use Service Container
$object = new Object();
$object->setAddressStreet("134 route de Vertou");
$object->setCity("Nantes");
$object->setPostalCode("44200");
$coordinates = $this->geolocation->retrieveByObject($object, true); // This second var is hydrate auto
$coordinates = $this->container->get('yipikai.geolocation')->retrieveByAddress("134 route de Vertou 44200 Nantes");
/**
* $coordinates = array:2 [
* "latitude" => 47.186543
* "longitude" => -1.528056,
* "address" => "134 route de Vertou 44200 Nantes"
* ]
*/
The commit message must follow the Conventional Commits specification. The following types are allowed:
update
: Updatefix
: Bug fixfeat
: New featuredocs
: Change in the documentationspec
: Spec changetest
: Test-related changeperf
: Performance optimization
Examples:
update : Something
fix: Fix something
feat: Introduce X
docs: Add docs for X
spec: Z disambiguation
See licence file
Created by Matthieu Beurel. Sponsored by Yipikai Studio.