boxuk / postcodes-io-bundle
一个用于与 postcodes.io 服务交互的 Symfony2 扩展包。
Requires
- php: >=5.4.0
- guzzlehttp/guzzle-services: ~0.1
- symfony/framework-bundle: 2.*
Requires (Dev)
- phploc/phploc: ~2.0
- phpmd/phpmd: ~2.0
- phpunit/phpunit: ~3.7
- sebastian/phpcpd: ~2.0
- squizlabs/php_codesniffer: ~1.5
- symfony/browser-kit: ~2.5
This package is auto-updated.
Last update: 2024-09-18 22:51:26 UTC
README
一个用于查询 postcodes.io 网络服务的扩展包。
https://github.com/BoxUk/postcodes-io-bundle
安装
安装通过 Composer 处理。
-
运行以下命令
$ composer require boxuk/postcodes-io-bundle ~1.0
这应该在您的项目的
composer.json
文件中添加以下内容"require": { "boxuk/postcodes-io-bundle": "~1.0" }
-
将扩展包添加到您的
app/AppKernel.php
文件中public function registerBundles() { $bundles = array( // ... new BoxUk\PostcodesIoBundle\BoxUkPostcodesIoBundle() ); }
服务
此扩展包为您的容器添加了两个服务
box_uk_postcodes_io.client
一个配置为查询 postcodes.io 服务的 GuzzleHttp\Client。box_uk_postcodes_io.client_factory
一个用于创建客户端实例的工厂。
使用方法
像其他服务一样将 box_uk_postcodes_io.client
服务注入到您的控制器/类中。一旦您获得了客户端实例,您就可以在上面调用以下文档中记录的方法,并将任何参数作为关联数组传递。
响应将是一个 GuzzleHttp\Command\Model
对象,您可以通过数组访问它,例如 echo $response['result']['latitude']
。或者,您也可以调用 $response->toArray()
来获取响应的数组表示。有关响应结构的更多文档,请参阅 postcodes.io 文档。
方法
lookup()
查找特定邮政编码的数据。
参数
postcode
(必需): 邮政编码。
示例
$response = $client->lookup(array('postcode' => 'CF10 1DD'));
bulkLookup()
查找一组邮政编码的数据。
参数
postcodes
(必需): 邮政编码数组(最多 100 个)。
示例
$response = $client->bulkLookup(array('postcodes' => array('CF10 1DD', 'W1B 4BD')));
reverseGeocode()
获取给定纬度/经度坐标附近的邮政编码数据。
参数
latitude
(必需): 纬度。longitude
(必需): 经度。limit
(可选): 返回的邮政编码的最大数量(默认 10,最多 100)。radius
(可选): 在其中查找邮政编码的半径(以米为单位)(默认 100,最多 1000)。
示例
$response = $client->reverseGeocode(array('latitude' => 51.481667, 'longitude' => -3.182155));
bulkReverseGeocode()
批量将纬度/经度坐标转换为邮政编码数据。
参数
-
geolocations
(必需): 要查找的地理位置(最多 100)。此参数应为数组,每个元素具有以下键latitude
(必需): 纬度。longitude
(必需): 经度。limit
(可选): 返回的邮政编码的最大数量(默认 10,最多 100)。radius
(可选): 在其中查找邮政编码的半径(以米为单位)(默认 100,最多 1000)。
示例
$response = $client->bulkReverseGeocode( array( 'geolocations' => array( array('latitude' => 51.481667, 'longitude' => -3.182155), array('latitude' => 51.88328, 'longitude' => -3.43684, 'limit' => 5, 'radius' => 500) ) ) );
matching()
查找与给定查询匹配的邮政编码。
参数
query
(可选): 邮政编码查询,例如 'CF10'。limit
(可选): 返回的邮政编码的最大数量(默认 10,最多 100)。
示例
$response = $client->matching(array('query' => 'CF10', 'limit' => 20));
validate()
验证邮政编码。
参数
postcode
(必需): 要验证的邮政编码。
示例
$response = $client->validate(array('postcode' => 'CF10 1DD'));
autocomplete()
获取一个邮政编码列表,用于自动完成部分邮政编码。
参数
postcode
(必需): 要自动完成的邮政编码。limit
(可选): 返回的邮政编码的最大数量(默认 10,最多 100)。
示例
$response = $client->autocomplete(array('postcode' => 'CF10', 'limit' => 20));
random()
获取随机邮政编码的数据。
参数: 无。
示例
$response = $client->random();
outwardCodeLookup()
获取指定 "outward code"(邮政编码的前半部分)的数据。
参数
outcode
(必需): 要获取位置数据的 "outward code"(邮政编码的前半部分)。
示例
$response = $client->outwardCodeLookup(array('outcode' => 'CF10'));