Чтобы интегрировать Laravel с OpenStreetMap, вы можете использовать следующие методы:
Метод 1: использование пакета “guzzlehttp/guzzle”
Сначала вам необходимо установить пакет “guzzlehttp/guzzle” с помощью Composer:
composer require guzzlehttp/guzzle
После установки вы можете использовать HTTP-клиент Guzzle для отправки запросов к API OpenStreetMap. Вот пример того, как получить информацию о конкретном местоположении:
use GuzzleHttp\Client;
$client = new Client();
$response = $client->request('GET', 'https://nominatim.openstreetmap.org/search', [
'query' => [
'q' => 'New York, USA',
'format' => 'json',
],
]);
$locationDetails = json_decode($response->getBody(), true);
// Process the location details
// ...
Метод 2: использование пакета «geocoder-php/leaflet-provider».
Другой подход заключается в использовании пакета «geocoder-php/leaflet-provider», который обеспечивает простой и удобный способ интеграции с OpenStreetMap. Установите пакет с помощью Composer:
composer require geocoder-php/leaflet-provider
Вот пример использования этого пакета для получения данных геолокации:
use Geocoder\Provider\OpenStreetMap;
use Geocoder\Query\GeocodeQuery;
$provider = new OpenStreetMap();
$query = GeocodeQuery::create('New York, USA');
$result = $provider->geocodeQuery($query);
$location = $result->first();
// Access various location details
$latitude = $location->getCoordinates()->getLatitude();
$longitude = $location->getCoordinates()->getLongitude();
$address = $location->getStreetName();
// ...