php nominatim
2.0.0
Nominatim 的 PHP 客户端,OpenStreetMap 数据的搜索引擎。
建造 | 稳定的 | 执照 |
---|---|---|
如果 Composer 已经安装
composer require riverside/php-nominatim
如果您的系统上尚未安装 Composer,您可以使用以下命令行继续安装:
$ curl -sS https://getcomposer.org/installer | php
接下来,将以下 require 条目添加到项目根目录下的composer.json 文件中。
{“要求”:{“河滨/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) 。 “,”。 $响应->getLng(0); } else {echo '未找到位置。'; } } catch (InvalidArgumentException $e) {echo $e->getMessage(); } catch (Exception $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 (Exception $e) {echo $e->getMessage(); }
查询一个或多个 OSM 对象的地址和其他详细信息,如节点、路径或关系。
$client = new RiversideNominatimClient();尝试{$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 (Exception $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 (Exception $e) {echo $e->getMessage(); }
检查服务和数据库是否正在运行,以及数据库上次更新的时间。
$client = new RiversideNominatimClient();尝试{$response = $client->status();if ($response->isOK()) {echo '<pre>';print_r($response->toArray()); } else {echo '未找到状态'; } } catch (InvalidArgumentException $e) {echo $e->getMessage(); } catch (Exception $e) {echo $e->getMessage(); }
列出已在 OSM 中删除但在 Nominatim 中保留的对象,以防意外删除。
$client = new RiversideNominatimClient();尝试{$response = $client->deletable();if ($response->isOK()) {echo '<pre>';print_r($response->toArray()); } else {echo '未找到可删除对象'; } } catch (InvalidArgumentException $e) {echo $e->getMessage(); } catch (Exception $e) {echo $e->getMessage(); }
Nominatim 检测到的损坏多边形列表。
$client = new RiversideNominatimClient();尝试{$response = $client->polygons();if ($response->isOK()) {echo '<pre>';print_r($response->toArray()); } else {echo '未找到多边形'; } } catch (InvalidArgumentException $e) {echo $e->getMessage(); } catch (Exception $e) {echo $e->getMessage(); }
https://wiki.openstreetmap.org/wiki/Nominatim
https://github.com/openstreetmap/Nominatim
https://nominatim.openstreetmap.org/
https://nominatim.org/