yipikai / geolocation-bundle
This bundle retrieve latitude and longitude with a postal address since the api adress.gouv.fr
Installs: 1 234
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: ^7.4 || ^8.0 || ^8.1 || ^8.2
- symfony/http-client: ^5.4 || ^6.4
- symfony/monolog-bundle: ^3.8
- symfony/property-access: ^5.4 || ^6.4
README
Install bundle
You can install it with Composer:
composer require yipikai/geolocation-bundle
This bundle use the api to the adresse.data.gouv.fr
Documentation
Retrieve Coordinates with address postal
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 * ] */
Retrieve Coordinates with Object
... 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" * ] */
Commit Messages
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
License and Copyright
See licence file
Credits
Created by Matthieu Beurel. Sponsored by Yipikai Studio.