suilven / ukpostcodes
封装postcodes.io以获取英国邮政编码信息
1.0.0
2020-05-10 22:06 UTC
Requires
- php-vcr/php-vcr: ^1.4
- php-vcr/phpunit-testlistener-vcr: dev-master
Requires (Dev)
- clue/graph-composer: dev-master
- ergebnis/composer-normalize: dev-master
- phpstan/phpstan: ^0.12.0@dev
- phpunit/phpunit: ^7.5
- squizlabs/php_codesniffer: ^3.0@dev
- vimeo/psalm: ^3.0@dev
This package is auto-updated.
Last update: 2024-09-11 14:38:24 UTC
README
PHP客户端封装postcodes.io API服务
用法
获取邮政编码
$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');
查找外向代码
外向代码是邮政编码中空格之前的部分,例如 KY16
在 KY16 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/