proficloud / postcodes-io-bundle
用于与postcodes.io服务交互的Symfony3扩展包。
Requires
- php: >=5.5.9
- guzzlehttp/guzzle-services: ~1.1
- symfony/framework-bundle: 3.*
Requires (Dev)
- phploc/phploc: ~2.0
- phpmd/phpmd: ~2.0
- phpunit/phpunit: ~4.7
- sebastian/phpcpd: ~2.0
- squizlabs/php_codesniffer: ~1.5
- symfony/browser-kit: ~2.5
This package is not auto-updated.
Last update: 2024-09-18 19:39:04 UTC
README
用于查询postcodes.io网络服务的扩展包。
https://github.com/ProfiCloud/postcodes-io-bundle
安装
安装通过Composer进行。
-
运行以下命令
$ composer require proficloud/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()
获取指定“外码”(邮编的前半部分)的数据。
参数
outcode
(必需):要获取位置数据的“外码”(邮编的前半部分)。
示例
$response = $client->outwardCodeLookup(array('outcode' => 'CF10'));