我需要把英国的邮政编码和名单核对一下。
英国的邮政编码是标准格式,但列表中只包含我需要检查的外发部分。
该列表包含一系列外发邮政编码,还包含一些与此外发邮政编码相关的数据,例如
AL St Albans
B Birmingham
BT Belfast
TR Taunton
TR21 Taunton X
TR22 Taunton Y我的目标是当我得到一个邮政编码时,例如B20 7TP,我可以搜索并找到伯明翰。
有什么想法吗?
这个问题不同于那些可能的答案,但在我的例子中,我需要检查完整的邮政编码,而只检查向外邮政编码。
发布于 2019-05-24 23:08:25
如果您有整个邮政编码,并且只想使用outcode,请删除最后三个字符并使用剩下的字符。所有邮政编码都以模式digit-alpha-alpha结尾,因此删除这些字符将得到outcode;任何不符合该模式或在删除该子字符串后不提供有效outcode的字符串都不是有效的邮政编码。(Source)
如果您愿意承担外部(和基于互联网)的依赖,您可以考虑使用类似https://postcodes.io的东西,特别是该API的outcodes部分。我与postcodes.io没有任何关系;我只是在谷歌上找到它的。
根据文档,/outcodes将返回
H115代码下的行政区域/选区代码<代码>H216<代码>H117<代码><代码>H117<代码><代码>H119 WGS84纬度<代码>H220<代码>H121<代码>代码<代码>H222<代码>H123代码中的教区/社区<代码>H224<代码>F225
作为参考,对/outcodes/TA1的调用返回:
{
"status": 200,
"result": {
"outcode": "TA1",
"longitude": -3.10297767924529,
"latitude": 51.0133987332761,
"northings": 124359,
"eastings": 322721,
"admin_district": [
"Taunton Deane"
],
"parish": [
"Taunton Deane, unparished area",
"Bishop's Hull",
"West Monkton",
"Trull",
"Comeytrowe"
],
"admin_county": [
"Somerset"
],
"admin_ward": [
"Taunton Halcon",
"Bishop's Hull",
"Taunton Lyngford",
"Taunton Eastgate",
"West Monkton",
"Taunton Manor and Wilton",
"Taunton Fairwater",
"Taunton Killams and Mountfield",
"Trull",
"Comeytrowe",
"Taunton Blackbrook and Holway"
],
"country": [
"England"
]
}
}如果您有完整的邮政编码,/postcodes端点将返回更详细的信息,我不会在这里包含这些信息,但它确实包含了outcode和incode作为单独的字段。
当然,我建议将任何调用的结果缓存到远程API。
https://stackoverflow.com/questions/56295137
复制相似问题