You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Places API:Autocomplete函数多类型参数传递问题

Google Places Autocomplete 多类型筛选问题解决

核心问题

你使用的是Google Maps JavaScript API的Autocomplete组件,它的types参数不支持同时传入多个类型值(这和你参考的Web Service文档规则不同),所以你尝试的["address", "establishment"]或["address, establishment"]写法都无法生效。

直接解决方案

如果你需要同时显示家庭地址(地理编码类结果)和商务地址(商家/机构类结果),移除types参数即可——Autocomplete默认会返回这两类结果,刚好满足你的需求。修改后的初始化代码如下:

var ac = new google.maps.places.Autocomplete(
    document.getElementById('address_line_1'), {
        componentRestrictions: { country: ["uk"] },
        fields: ["address_components", "geometry"]
        // 移除types参数,默认返回地址和商家结果
    });

地址解析代码优化

你的原代码通过固定索引获取address_components的方式容易出错(不同地址的组件顺序、数量可能不一致),建议通过组件的types属性精准匹配字段,示例如下:

ac.addListener('place_changed', function() {
    var place = ac.getPlace();
    var address_line_1 = '';
    var address_town = '';
    var address_county = '';
    var address_postcode = '';

    // 遍历地址组件,根据类型匹配对应字段
    place.address_components.forEach(function(component) {
        if (component.types.includes('street_number')) {
            address_line_1 += component.long_name + ' ';
        }
        if (component.types.includes('route')) {
            address_line_1 += component.long_name;
        }
        if (component.types.includes('locality')) {
            address_town = component.long_name;
        }
        if (component.types.includes('administrative_area_level_2')) {
            address_county = component.long_name;
        }
        if (component.types.includes('postal_code')) {
            address_postcode = component.long_name;
        }
    });

    $('input#address_line_1').val(address_line_1.trim());
    $('input#address_town').val(address_town);
    $('input#address_county').val(address_county);
    $('input#address_postcode').val(address_postcode);
});

特殊场景替代方案

如果必须显式控制结果范围,可根据需求选择单个类型:

  • types: ['geocode']:仅返回家庭地址类的地理编码结果
  • types: ['establishment']:仅返回商务地址类的商家/机构结果

内容的提问来源于stack exchange,提问作者Lewis Hardisty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 04:53:20