【问题标题】:Get ZIP codes of particular country using google map使用谷歌地图获取特定国家的邮政编码
【发布时间】:2026-01-13 12:15:01
【问题描述】:

我在 codeigniter 中使用 maps.googleapis.com/maps/api 在用户键入 zip 地址时显示自动完成位置。我有两个输入字段,第一个用户将选择国家,在第二个字段中,他将输入他的邮政编码,并从谷歌自动完成中选择他的地址。

    var directionsService = new google.maps.DirectionsService();
        google.maps.event.addDomListener(window, 'load', function () {
        new google.maps.places.SearchBox(document.getElementById('zip'));
        directionsDisplay = new google.maps.DirectionsRenderer({ 'draggable': true });
    });

工作正常,但现在我只想显示选定国家/地区的邮政编码。表示如果用户选择澳大利亚作为国家并输入 zip (如 2127),则 google api 应显示澳大利亚的地址,地址中包含 2127

【问题讨论】:

    标签: javascript google-maps google-maps-api-3


    【解决方案1】:

    Google maps JS api 提供了两种用于自动完成的小部件。一个是您正在使用的google.maps.places.SearchBox,它只提供经纬度限制,然后是google.maps.places.Autocomplete,它提供国家限制(​​以及更多),例如。像这样:

    var input = document.getElementById('searchTextField');
    var options = {
      componentRestrictions: {country: 'au'}
    };
    
    autocomplete = new google.maps.places.Autocomplete(input, options);
    

    有关这两种方法的优缺点的更多信息,请参阅docs(查看“类摘要”部分)并选择最适合您需求的方法。

    【讨论】:

    • 您还可以在选项中添加类型:'geocode',以避免街道级别的地址和机构。
    【解决方案2】:

    我还想在之前的回答中补充说,公共问题跟踪器中有一个功能请求来扩展位置自动完成的组件限制(使其类似于地理编码 API)

    https://code.google.com/p/gmaps-api-issues/issues/detail?id=4433

    如果您对此功能请求感兴趣,请对其加注星标以表达您的兴趣并接收来自 Google 的更新。

    【讨论】: