wimski/nominatim-geocoding-api-client

Nominatim 地理编码 API 客户端

v1.2.0 2022-03-22 08:27 UTC

This package is auto-updated.

Last update: 2024-09-22 14:19:22 UTC


README

Latest Stable Version Coverage Status PHPUnit PHPStan

Nominatim 地理编码 API 客户端

变更日志

查看变更日志。

使用说明

安装包

composer require wimski/nominatim-geocoding-api-client

示例

use Wimski\Nominatim\Client;
use Wimski\Nominatim\Config\NominatimConfig;
use Wimski\Nominatim\GeocoderServices\NominatimGeocoderService;
use Wimski\Nominatim\RequestParameters\ForwardGeocodingQueryRequestParameters;
use Wimski\Nominatim\Transformers\GeocodingResponseTransformer;

$config = new NominatimConfig(
    'my-custom-user-agent',
    'email@provider.net',
);

$service = new NominatimGeocoderService(
    new Client(),
    new GeocodingResponseTransformer(),
    $config,
);

$requestParameters = ForwardGeocodingQueryRequestParameters::make('some query')
    ->addCountryCode('nl')
    ->includeAddressDetails();

$response = $service->requestForwardGeocoding($requestParameters);

// Get data from the response
$latitude = $response->getItems()[0]->getCoordinate()->getLatitude();

PSR HTTP

Client 类默认使用 Discovery 获取以下协议的实例

  • Psr\Http\Client\ClientInterface
  • Psr\Http\Message\RequestFactoryInterface
  • Psr\Http\Message\UriFactoryInterface

这意味着您需要将(a)PSR 兼容的包(a)包含在您的项目中(a)

如果您已经在项目中设置了一个特定的 HTTP 客户端配置,并且也想将其用于 Nominatim 请求,您可以将该配置作为构造函数参数传递给 Client

$service = new NominatimGeocoderService(
    new Client($myCustomPsrHttpClient),
    new GeocodingResponseTransformer(),
    new NominatimConfig('user-agent', 'email@provider.net'),
);

服务

目前提供以下提供者的服务

可以通过扩展 AbstractGeocoderService 来轻松创建自定义服务,只要提供者正确实现了 Nominatim 规范。

PHPUnit

composer run phpunit

PHPStan

composer run phpstan

致谢

许可证

MIT 许可证(MIT)。有关更多信息,请参阅许可证文件