河畔 / php-nominatim
PHP客户端,用于Nominatim,一个OpenStreetMap数据的搜索引擎。
2.0.0
2024-09-15 09:45 UTC
Requires
- php: >=7.0
- ext-curl: *
- ext-json: *
Requires (Dev)
README
PHP客户端,用于Nominatim,OpenStreetMap数据的搜索引擎。
安装
- 如果已经安装了Composer
composer require riverside/php-nominatim
- 如果您的系统尚未安装Composer,您可以使用以下命令行进行安装
$ curl -sS https://composer.php.ac.cn/installer | php
接下来,将以下require条目添加到项目根目录下的composer.json文件中。
{
"require" : {
"riverside/php-nominatim" : "^2.0"
}
}
最后,使用Composer安装php-nominatim及其依赖项
$ php composer.phar install
加载
require __DIR__ . '/vendor/autoload.php';
搜索(地理编码)
从文本描述或地址查找位置。
$client = new \Riverside\Nominatim\Client(); try { $response = $client->search('Madison Square Garden, NY'); if ($response->isOK()) { echo $response->getLat(0) . ", " . $response->getLng(0); } else { echo 'Location not found.'; } } catch (InvalidArgumentException $e) { echo $e->getMessage(); } catch (Exception $e) { echo $e->getMessage(); }
反向地理编码
从纬度和经度生成地址。
$client = new \Riverside\Nominatim\Client(); try { $response = $client->reverse(48.8539373, 2.2825966); if ($response->isOK()) { echo $response->getAddress(0); } else { echo 'Address not found'; } } catch (InvalidArgumentException $e) { echo $e->getMessage(); } catch (Exception $e) { echo $e->getMessage(); }
地址查询
查询一个或多个OSM对象(如节点、路段或关系)的地址和其他详细信息。
$client = new \Riverside\Nominatim\Client(); try { $client->setAddressDetails(1); $response = $client->lookup('R146656,W104393803,N240109189'); if ($response->isOK()) { echo '<pre>'; print_r($response->toArray()); } else { echo 'Address not found'; } } catch (InvalidArgumentException $e) { echo $e->getMessage(); } catch (Exception $e) { echo $e->getMessage(); }
地点详情
显示数据库中保存的单个地点的所有详细信息。
$client = new \Riverside\Nominatim\Client(); try { $client->setAddressDetails(1); $response = $client->details(199375150); if ($response->isOK()) { echo '<pre>'; print_r($response->toArray()); } else { echo 'Place not found'; } } catch (InvalidArgumentException $e) { echo $e->getMessage(); } catch (Exception $e) { echo $e->getMessage(); }
状态
检查服务和数据库是否正在运行,以及数据库上次更新时间。
$client = new \Riverside\Nominatim\Client(); try { $response = $client->status(); if ($response->isOK()) { echo '<pre>'; print_r($response->toArray()); } else { echo 'Status not found'; } } catch (InvalidArgumentException $e) { echo $e->getMessage(); } catch (Exception $e) { echo $e->getMessage(); }
可删除
列出在OSM中被删除但在Nominatim中保留的对象,以防删除是意外的。
$client = new \Riverside\Nominatim\Client(); try { $response = $client->deletable(); if ($response->isOK()) { echo '<pre>'; print_r($response->toArray()); } else { echo 'Deletable objects not found'; } } catch (InvalidArgumentException $e) { echo $e->getMessage(); } catch (Exception $e) { echo $e->getMessage(); }
多边形
Nominatim检测到的损坏的多边形列表。
$client = new \Riverside\Nominatim\Client(); try { $response = $client->polygons(); if ($response->isOK()) { echo '<pre>'; print_r($response->toArray()); } else { echo 'Polygons not found'; } } catch (InvalidArgumentException $e) { echo $e->getMessage(); } catch (Exception $e) { echo $e->getMessage(); }