proficloud / postcodes-io-bundle

用于与postcodes.io服务交互的Symfony3扩展包。

1.0.1 2017-03-11 12:17 UTC

This package is not auto-updated.

Last update: 2024-09-18 19:39:04 UTC


README

Build Status

用于查询postcodes.io网络服务的扩展包。

https://github.com/ProfiCloud/postcodes-io-bundle

许可证

安装

安装通过Composer进行。

  1. 运行以下命令

    $ composer require proficloud/postcodes-io-bundle ~1.0

    这将向您的项目的composer.json文件中添加以下内容

    "require": {
        "boxuk/postcodes-io-bundle": "~1.0"
    }
  2. 将扩展包添加到您的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()

API文档

查找特定邮编的数据。

参数

  • postcode (必需):邮编。

示例

$response = $client->lookup(array('postcode' => 'CF10 1DD'));

bulkLookup()

API文档

查找一组邮编的数据。

参数

  • postcodes (必需):邮编数组(最多100个)。

示例

$response = $client->bulkLookup(array('postcodes' => array('CF10 1DD', 'W1B 4BD')));

reverseGeocode()

API文档

获取给定纬度/经度坐标最近的邮编数据。

参数

  • latitude (必需):纬度。
  • longitude (必需):经度。
  • limit (可选):返回邮编的最大数量(默认10,最多100)。
  • radius (可选):寻找邮编的半径(以米为单位)(默认100,最多1000)。

示例

$response = $client->reverseGeocode(array('latitude' => 51.481667, 'longitude' => -3.182155));

bulkReverseGeocode()

API文档

批量将纬度/经度坐标转换为邮编数据。

参数

  • 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()

API文档

查找与给定查询匹配的邮编。

参数

  • query (可选):邮编查询,例如'CF10'。
  • limit (可选):返回邮编的最大数量(默认10,最多100)。

示例

$response = $client->matching(array('query' => 'CF10', 'limit' => 20));

validate()

API文档

验证邮编。

参数

  • postcode (必需):要验证的邮编。

示例

$response = $client->validate(array('postcode' => 'CF10 1DD'));

autocomplete()

API文档

获取一个邮编列表以自动完成部分邮编。

参数

  • postcode (必需):要自动完成的邮编。
  • limit (可选):返回邮编的最大数量(默认10,最多100)。

示例

$response = $client->autocomplete(array('postcode' => 'CF10', 'limit' => 20));

random()

API文档

获取随机邮编的数据。

参数:无。

示例

$response = $client->random();

outwardCodeLookup()

API文档

获取指定“外码”(邮编的前半部分)的数据。

参数

  • outcode (必需):要获取位置数据的“外码”(邮编的前半部分)。

示例

$response = $client->outwardCodeLookup(array('outcode' => 'CF10'));