javascript - 使用 Google 地方信息获取郊区的邮政编码

标签 javascript jquery google-places-api google-geocoding-api

我正在使用Google Place Autocomplete通过郊区名称检索邮政编码。我当前使用的代码效果很好,并且确实检索了我需要的所有内容,但是,它仅适用于某些郊区,而其他郊区则不提供邮政编码。

例如:

  • 澳大利亚维多利亚州拉弗顿(良好)
  • 澳大利亚维多利亚墨尔 native 场(良好)
  • 澳大利亚维多利亚州墨尔本(无邮政编码)
  • 澳大利亚维多利亚州里士满(无邮政编码)
  • 等等

HTML

<input id="supplier-area" type="text">

JS

var autocomplete;

function initialize() {
    autocomplete = new google.maps.places.Autocomplete(
        (document.getElementById('supplier-area')),
        {
            types: ['(cities)'],
            componentRestrictions: {
                country: 'au'
            }
        }
    );

    google.maps.event.addListener(autocomplete, 'place_changed', function() {
        var place = autocomplete.getPlace();
        alert(JSON.stringify(place));
    });
}

initialize();

最佳答案

由于墨尔本是一个城市,它跨越许多邮政编码。同样,里士满是一个跨越多个邮政编码的郊区(西北地区为 3067,大多数其他地方为 3121)。

您需要更具体地查询才能获取邮政编码。

如果您需要邮政编码,可以输入 reverse geo-codegetPlace() 返回的纬度/经度。谷歌通常会返回您查询的区域的逻辑中心(市中心/CBD等)。由于纬度/经度是一个精确的点,而不是一个区域,因此没有歧义,并且它将有一个邮政编码。

Google 做出这种假设是不合适的,因为它并非在所有情况下都正确,但如果这是您的应用需要的行为,那么您可以“故意”做出该决定。

关于javascript - 使用 Google 地方信息获取郊区的邮政编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26568444/

相关文章:

jquery - datePicker 出现在页面加载时

javascript - 在多个 div 中添加和删除类迭代

将TR移动到另一个表后jquery的hover()和click()不起作用

javascript - 特定地点 ID 的照片

ios - 等同于 Swift 中的 performSelectorOnMainThread wait Until Done

javascript - 带有 Meteor 的 jQuery TokenInput

javascript - 如何表示new RegExp()是由未定义的值构造的?

android - Place Picker 不工作并消失

javascript - 如何将MVC架构应用到ExtJS项目中?

javascript - 使用 Array.join() 时包含数组索引