boxuk/postcodes-io-bundle

一个用于与 postcodes.io 服务交互的 Symfony2 扩展包。

1.0.0 2014-08-18 11:17 UTC

This package is auto-updated.

Last update: 2024-09-18 22:51:26 UTC


README

Build Status

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

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

许可证

安装

安装通过 Composer 处理。

  1. 运行以下命令

    $ composer require boxuk/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 文档

获取指定 "outward code"(邮政编码的前半部分)的数据。

参数

  • outcode (必需): 要获取位置数据的 "outward code"(邮政编码的前半部分)。

示例

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