我正在使用google geocode api使用新加坡的邮政编码获取lat长
我试过以下来获取数据:
(1)http://maps.googleapis.com/maps/api/geocode/json?address=505468&sensor=false
(2)http://maps.googleapis.com/maps/api/geocode/json?address=Singapore%20505468&sensor=false
(3)http://maps.googleapis.com/maps/api/geocode/json?address=Singapore%20505468&sensor=false®ion=sg
但它从印度返回位置
https://developers.google.com/maps/documentation/geocoding/?hl=fr#RegionCodes
任何其他方式只能获得特定国家(新加坡)的结果。
我试过跟随它返回正确的结果
http://maps.googleapis.com/maps/api/geocode/json?address=Singapore%20133224&sensor=false
答案 0 :(得分:24)
这样做的正确方法是提供componentRestrictions
例如:
var request = {
address: address,
componentRestrictions: {
country: 'UK'
}
}
geocoder.geocode(request, function(results, status){
//...
});
答案 1 :(得分:21)
要将结果限制到特定国家/地区,请使用组件过滤。
但这不是问题,地理编码器结果是错误的,因为结果将国家/地区设置为SG
,但位置错误(位于印度)。
我担心使用给定的地址(似乎邮政编码不存在),你唯一能做的就是向谷歌报告错误的结果。
答案 2 :(得分:8)
您可以设置单个国家/地区或多个国家/地区
OR
答案 3 :(得分:1)
您应该可以使用此方法 http://maps.googleapis.com/maps/api/geocode/json?components=country:US|postal_code:5037
删除地址并向组件传递邮政编码,并确保地址是否有值让传递用户选择的另一个值和邮政编码以验证您的api,否则没有邮政编码传递给他人地址