suilven/ukpostcodes

封装postcodes.io以获取英国邮政编码信息

1.0.0 2020-05-10 22:06 UTC

This package is auto-updated.

Last update: 2024-09-11 14:38:24 UTC


README

Build Status Scrutinizer Code Quality codecov.io

Latest Stable Version Latest Unstable Version Total Downloads License Monthly Downloads Daily Downloads composer.lock

GitHub Code Size GitHub Repo Size GitHub Last Commit GitHub Activity GitHub Issues

codecov.io

PHP客户端封装postcodes.io API服务

dependency graph for clue/graph-composer

用法

获取邮政编码

$postcode = PostCodeFactory::get('KY16 9SS');

$api = new Suilven\UKPostCodes\API();
$lookup = $this->api->lookup('KY16 9SS'');

获取附近的邮政编码

$postcode = PostCodeFactory::get('KY16 9SS');
$nearby = $postcode->nearest();

$api = new Suilven\UKPostCodes\API();
$nearest = $this->api->nearest('SW1A 2AA');

通过邮政编码批量查找

$api = new Suilven\UKPostCodes\API();
$postcodeObjects = $this->api->bulkLookup([
    'SW1A 2AA',
    'KY16 9SS',
    'KY11 3ED'
]);

通过坐标批量查找

$api = new Suilven\UKPostCodes\API();

$coors = [
   [
     'latitude' => 51.50354,
     'longitude' => -0.127695,
   ],
   [
     'latitude' => 56.340349,
     'longitude' => -2.808787,
   ],
   [
     'latitude' => 56.03587,
     'longitude' => -3.500364,
   ],
];
$bulkReversed = $this->api->bulkReverseGeocoding($coors);

通过坐标批量查找

注意,如果坐标位于英国境外,API将返回一个空数组。

$api = new Suilven\UKPostCodes\API();
$postcodeObjects = $this->api->nearestPostcodesFromLongLat(0.629834723775309, 51.7923246977375);

查找已终止的邮政编码

注意,这将返回一个部分填充的邮政编码对象。

$api = new Suilven\UKPostCodes\API();
$terminated = $this->api->lookupTerminated('AB1 0AA');

查找外向代码

外向代码是邮政编码中空格之前的部分,例如 KY16KY16 9SS

$api = new Suilven\UKPostCodes\API();
$lookup = $this->api->lookupOutwardCode('RH1');

通过坐标查找外向代码

$api = new Suilven\UKPostCodes\API();
$lookup = $this->api->nearestOutwardCodeFromLongLat(0.629834723775309, 51.7923246977375);

找到给定外向代码最近的代码

$api = new Suilven\UKPostCodes\API();
$nearest = $this->api->nearestOutwardCode('RH1');

自动完成邮政编码

$api = new Suilven\UKPostCodes\API();
$autocompletedPostCodes = $this->api->partial('SW16');

查询部分邮政编码

$api = new Suilven\UKPostCodes\API();
$postcodeObjs = $this->api->query('SW16');

获取随机邮政编码

$api = new Suilven\UKPostCodes\API();
$random = $this->api->random();

获取两个邮政编码之间的距离

$api = new Suilven\UKPostCodes\API();
$distance = $this->api->distance('SW1A 2AB', 'EH99 1SP', Distance::KM);

如果未提供距离单位参数,则默认为英里(MILES)。另一个选项是 NAUTICAL_MILES

检查邮政编码是否有效

$api = new Suilven\UKPostCodes\API();

// false as there is no space in the postcode
$validated = $this->api->validate('KYAB92A');

Docker开发环境

启动

注意,第一次执行时将构建容器。

sudo docker-compose up -d phpcli

获取Bash提示符

sudo docker-compose exec phpcli /bin/bash

在本地运行测试

root@ukpostcodes.dev:/var/www> vendor/bin/phpunit tests/
PHPUnit 7.5.20 by Sebastian Bergmann and contributors.

..................................                                34 / 34 (100%)

Time: 156 ms, Memory: 6.00 MB

生成测试覆盖率

phpdbg -qrr vendor/bin/phpunit -d memory_limit=4G --coverage-html report   tests/