19

我正在使用 google geocode api 获取 lat long 使用新加坡的邮政编码

我尝试了以下方法来获取数据:

(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

4

4 回答 4

30

这样做的正确方法是提供componentRestrictions

例如:

var request = {
    address: address,
    componentRestrictions: {
        country: 'UK'
    }
}
geocoder.geocode(request, function(results, status){
    //...
});
于 2014-02-27T22:27:18.290 回答
25

要将结果限制在特定国家/地区,请使用组件过滤。

网址应该是http://maps.googleapis.com/maps/api/geocode/json?address=Singapore%20505468&sensor=false&components=country:SG

但这不是这里的问题,地理编码器结果是错误的,因为结果将国家设置为SG,但位置错误(位于印度)。

恐怕对于给定的地址(似乎邮政编码不存在),您唯一能做的就是向谷歌报告错误的结果。

于 2013-09-26T12:30:17.627 回答
1

您应该可以使用这种方法 http://maps.googleapis.com/maps/api/geocode/json?components=country:US|postal_code:5037

删除地址并向组件传递邮政编码并确保该地址是否有值让用户使用邮政编码选择另一个值来验证您的 api,否则如果没有传递邮政编码,它将泄漏到另一个地址

于 2016-07-01T07:51:06.383 回答