PHP-клиент для Nominatim, поисковой системы данных OpenStreetMap.
Строить | Стабильный | Лицензия |
---|---|---|
Если Composer уже установлен
composer require riverside/php-nominatim
Если Composer еще не установлен в вашей системе, вы можете установить его с помощью этой командной строки:
$ curl -sS https://getcomposer.org/installer | php
Затем добавьте следующую требуемую запись в файл композитора.json в корне вашего проекта.
{"require": {"riverside/php-nominatim": "^2.0"} }
Наконец, используйте Composer для установки php-nominatim и его зависимостей:
$ php composer.phar install
требуется __DIR__ . '/vendor/autoload.php';
Найдите местоположение по текстовому описанию или адресу.
$client = new RiversideNominatimClient();try {$response = $client->search('Мэдисон Сквер Гарден, Нью-Йорк');if ($response->isOK()) {echo $response->getLat(0) . ", ". $response->getLng(0); } else {echo 'Местоположение не найдено.'; } } catch (InvalidArgumentException $e) {echo $e->getMessage(); } catch (Исключение $e) {echo $e->getMessage(); }
Генерирует адрес на основе широты и долготы.
$client = new RiversideNominatimClient();попробуйте {$response = $client->reverse(48.8539373, 2.2825966);if ($response->isOK()) {echo $response->getAddress(0); } else {echo 'Адрес не найден'; } } catch (InvalidArgumentException $e) {echo $e->getMessage(); } catch (Исключение $e) {echo $e->getMessage(); }
Запросите адрес и другие сведения об одном или нескольких объектах OSM, таких как узел, путь или отношение.
$client = new RiversideNominatimClient();try {$client->setAddressDetails(1);$response = $client->lookup('R146656,W104393803,N240109189');if ($response->isOK()) {echo ' <pre>';print_r($response->toArray()); } else {echo 'Адрес не найден'; } } catch (InvalidArgumentException $e) {echo $e->getMessage(); } catch (Исключение $e) {echo $e->getMessage(); }
Показать всю информацию об одном месте, сохраненном в базе данных.
$client = new RiversideNominatimClient();попробуйте {$client->setAddressDetails(1);$response = $client->details(199375150);if ($response->isOK()) {echo '<pre>';print_r($response->toArray()); } else {echo 'Место не найдено'; } } catch (InvalidArgumentException $e) {echo $e->getMessage(); } catch (Исключение $e) {echo $e->getMessage(); }
Проверьте, запущены ли служба и база данных, а также когда база данных обновлялась в последний раз.
$client = новый RiversideNominatimClient();попробуйте {$response = $client->status();if ($response->isOK()) {echo '<pre>';print_r($response->toArray()); } else {echo 'Статус не найден'; } } catch (InvalidArgumentException $e) {echo $e->getMessage(); } catch (Исключение $e) {echo $e->getMessage(); }
Список объектов, которые были удалены в OSM, но сохранены в Nominatim на случай, если удаление было случайным.
$client = новый RiversideNominatimClient();попробуйте {$response = $client->deletable();if ($response->isOK()) {echo '<pre>';print_r($response->toArray()); } else {echo 'Удаляемые объекты не найдены'; } } catch (InvalidArgumentException $e) {echo $e->getMessage(); } catch (Исключение $e) {echo $e->getMessage(); }
Список сломанных полигонов, обнаруженных Nominatim.
$client = новый RiversideNominatimClient();попробуйте {$response = $client->polygons();if ($response->isOK()) {echo '<pre>';print_r($response->toArray()); } else {echo 'Многоугольники не найдены'; } } catch (InvalidArgumentException $e) {echo $e->getMessage(); } catch (Исключение $e) {echo $e->getMessage(); }
https://wiki.openstreetmap.org/wiki/Nominatim
https://github.com/openstreetmap/Nominatim
https://nominatim.openstreetmap.org/
https://nominatim.org/