Google maps 地理编码器有时返回错误的结果(即:邮政编码)

Google maps 地理编码器有时返回错误的结果(即:邮政编码),google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,这是我在这里的第一篇帖子,请原谅我的误解。 我使用的是GooglePlacesAPI(),它在大多数情况下运行良好 然而,对于某些地址,它返回了错误的邮政编码或邻居 例如,此搜索查询: 伦敦圣吉尔斯酒店-英国伦敦贝德福德大道圣吉尔斯酒店 有时,它返回邮政编码“WC2E 9HA”(这是错误的),而有时它返回“WC1B”(这是好的)。这种行为会定期切换。我认为这取决于处理我的请求的服务器 你能帮我找到一个解决办法吗 这是我的示例代码: var postal = ""; var address = "

这是我在这里的第一篇帖子,请原谅我的误解。 我使用的是GooglePlacesAPI(),它在大多数情况下运行良好

然而,对于某些地址,它返回了错误的邮政编码或邻居

例如,此搜索查询: 伦敦圣吉尔斯酒店-英国伦敦贝德福德大道圣吉尔斯酒店

有时,它返回邮政编码“WC2E 9HA”(这是错误的),而有时它返回“WC1B”(这是好的)。这种行为会定期切换。我认为这取决于处理我的请求的服务器

你能帮我找到一个解决办法吗

这是我的示例代码:

var postal = "";
var address = "St Giles London - A St Giles Hotel, Bedford Avenue, London, United Kingdom";
geocoder.geocode({ 'address': address  }, function (result, status) {
    if (status == google.maps.GeocoderStatus.OK) {
        if (result == null) {
            alert('null');
        } else {
            var address_components = result[0].address_components;
            for (var i = 0; i < address_components.length; i++) {
                if (address_components[i].types[0] == "postal_code") {
                    postal = address_components[i].long_name;
                    console.log(postal);
                }
            }

            alert(postal);
            return false;
        }
    } else {
        alert('status=' + status);
    }
});
var postal=”“;
var address=“St Giles London-英国伦敦贝德福德大道St Giles酒店”;
geocoder.geocode({'address':address},函数(结果,状态){
if(status==google.maps.GeocoderStatus.OK){
如果(结果==null){
警报(“空”);
}否则{
var address\u components=结果[0]。address\u components;
对于(变量i=0;i

谢谢大家!

如果谷歌的数据在他们的服务器上不一致是一个问题,我不确定你能做什么。但是,如果您知道它只是某些位置,您可以将这些存储为例外。检查地址是否是其中之一,如果是,请使用存储的邮政编码,而不是依靠谷歌。谢谢你的评论,但我的代码处理不同的场景和随机地址,因此我无法存储任何内容。一个客户发现了这个bug,所以我有两个选择:欺骗并处理这个地址,或者找出它是否是一个可能影响其他地址的真正问题。。我希望谷歌的人能看看这是不是一个真正的问题,或者我只是在想象:)也在这里报告,你坚持第一个结果(结果[0])。也许正确的答案并不总是出现在这个问题上position@amenadiel我检查过了,但该数组中只有一个对象。我最终同意了邓肯的想法,有点“欺骗”了。。