如果地址位于英国,我需要查明特定(格式正确)的地址是“英格兰”,“威尔士”,“苏格兰”还是“北爱尔兰”。
我目前要求Google地理编码API返回城市(例如“伦敦”)和国家/地区(“英国”) - 这些对我来说都是无用的。
有什么办法可以检索我需要的信息,还是需要不同的网络服务?
答案 0 :(得分:1)
我不确定为什么地理编码响应在将完整地址作为参数传递时不会返回UK的administrative_area_level_1。
但是,在您的情况下,我要做的是将城镇名称(而不是完整的地址)发送到地理编码器,地理编码器将返回您需要的数据。这里有一些例子:
请注意,我已将Region Biasing参数添加到查询中,因此如果您想在英国境外使用该参数,则需要对其进行更改。
答案 1 :(得分:1)
如果您的完整地址包含邮政编码,您可以通过邮政编码前缀来确定这一点,邮政编码前缀与邮政区相关联。
北爱尔兰:BT
威尔士:LL,NP,CF,SA,CH,SY
苏格兰:AB,DD,FK,PA,DG,ZE,KA,G,EH,IV,KW
所有其他人都是英格兰,不包括海外地区的邮政编码。
您可以从以下网站获取有关英国邮政编码的一般信息:
http://www.townscountiespostcodes.co.uk/
在维基百科上可以找到海外地区的邮政编码: http://en.wikipedia.org/wiki/Postcodes_in_the_United_Kingdom
答案 2 :(得分:0)
我刚才没有遇到这些问题,但是他们开始出现一些丹麦邮政编码。 不幸的是,我最终做的是查询谷歌两次。 我第一次发送邮政编码并从响应中提取“formatted_address”时,对其进行urlencode并将其用于对地理编码API的另一个请求中。在大多数情况下,这会返回“administrative_area_level_1”,但它不适用于哥本哈根的某些邮政编码。
答案 3 :(得分:0)
只是补充一点,对于那些通过谷歌搜索到达这里的人(比如我),我遇到了类似的问题。 Andrew - OpenGeoCode上面的邮政编码列表非常有用,虽然缺少一些邮政编码信件。我搜索了Google API的结果,我相信我现在有一个全面的列表。
有一点需要注意:南方/爱尔兰共和国并不似乎会在Maps 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
}
答案 4 :(得分:0)
这是一个只做
的网络服务https://www.mashape.com/vanitysoft/uk-boundaries-io
..只是它允许通过单一或结合英国邮政编码(例如ZE1 0AE),部门,区域,城市和病房边界获取googleMaps ...查询的GeoJson
例如英国地区"曼彻斯特" ... / boundary / uk?district =曼彻斯特将为您提供以下GeoJson(该地区的所有行业界限......