如果地址在英国,我需要确定该地址是否位于“英格兰”、“威尔士”、“苏格兰”或“北爱尔兰”,并且地址格式良好。
我的当前请求Google地理编码API返回城市(例如“伦敦”)和国家(“英国”),这两者对我都没有用。
是否有任何方法可以检索到我需要的信息,或者需要使用不同的Web服务?
如果地址在英国,我需要确定该地址是否位于“英格兰”、“威尔士”、“苏格兰”或“北爱尔兰”,并且地址格式良好。
我的当前请求Google地理编码API返回城市(例如“伦敦”)和国家(“英国”),这两者对我都没有用。
是否有任何方法可以检索到我需要的信息,或者需要使用不同的Web服务?
http://www.townscountiespostcodes.co.uk/
海外领土的邮政编码可以在维基百科上找到: http://en.wikipedia.org/wiki/Postcodes_in_the_United_Kingdom补充一点,对于那些通过谷歌搜索(比如我)来到这里的人,我遇到了类似的问题。Andrew - OpenGeoCode提供的邮政编码列表非常有帮助,尽管少了一些邮政编码字母。我查阅了谷歌API的结果,现在我相信我已经有了一个全面的列表。
需要注意的一点是:爱尔兰南部/共和国似乎不能在地图API中返回邮政编码。我的解决方法是使用国家代码(API国家short_name
)。
希望我的小片段能够帮助一些人。您可以很容易地将其改编成独立的函数(我在另一个函数中使用它)。
if($('#postcode').val().match(/^(BT)/)){
$('#country').val("Northern Ireland");
} else if($('#postcode').val().match(/^(LL)|^(NP)|^(CF)|^(SA)|^(CH)|^(SY)|^(HR)|^(LD)/)){
$('#country').val("Wales");
} else if($('#postcode').val().match(/^(AB)|^(DD)|^(FK)|^(PA)|^(DG)|^(ZE)|^(KA)|^(G)|^(EH)|^(IV)|^(KW)|^(PH)|^(KA)|^(TD)|^(ML)|^(HS)/)){
$('#country').val("Scotland");
} else if($('#countryCode').val() == "IE"){
$('#country').val("Republic of Ireland");
} else if($('#countryCode').val() == "GB"){
$('#country').val("England");
}else{
$('#country').val(addressComponents.country); //if not UK postcode, return whatever Google gets for Country Name
}
https://www.mashape.com/vanitysoft/uk-boundaries-io
..简单地说,它允许获取适用于Google地图的GeoJson数据..可以通过单个或组合的英国邮政编码(例如ZE1 0AE)、区域、行政区、城市和选区边界进行查询
例如,对于英国的一个行政区"曼彻斯特" .../boundary/uk?district=曼彻斯特 将会得到以下GeoJson数据(该行政区内所有区域边界)...
我之前没有这些问题,但是它们开始出现在一些丹麦邮政编码中。 不幸的是,我的解决方法是查询两次谷歌。 第一次我发送邮政编码并从响应中提取“formatted_address”,对其进行urlencode,并在另一个请求中使用geocode API。这在大多数情况下会返回“administrative_area_level_1”,但是对于哥本哈根的某些邮政编码来说却不是这样。