wimski / nominatim-geocoding-api-client
Nominatim 地理编码 API 客户端
v1.2.0
2022-03-22 08:27 UTC
Requires
- php: ^8.0
- myclabs/php-enum: ^1.8
- php-http/discovery: ^1.13
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
Requires (Dev)
- mockery/mockery: ^1.5
- nyholm/psr7: ^1.5
- phpstan/phpstan: ^1.4
- phpstan/phpstan-mockery: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- swisnl/php-http-fixture-client: ^3.0
This package is auto-updated.
Last update: 2024-09-22 14:19:22 UTC
README
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'), );
服务
目前提供以下提供者的服务
- Nominatim
- LocationIQ
- 通用:不包含任何特定实现的头或参数。
可以通过扩展 AbstractGeocoderService
来轻松创建自定义服务,只要提供者正确实现了 Nominatim 规范。
PHPUnit
composer run phpunit
PHPStan
composer run phpstan
致谢
许可证
MIT 许可证(MIT)。有关更多信息,请参阅许可证文件。