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

如何限制新版Google Maps Autocomplete仅返回街道地址

如何限制新版Google Maps Autocomplete仅返回街道地址

嘿,我之前也碰到过新版Google Places Autocomplete的这个坑,旧的type: ["address"]参数确实被替换了,刚开始用includedPrimaryTypes的时候也没得到预期结果,后来摸索出了几个关键点,给你分享下:

1. 怎么过滤出仅街道地址?

核心是类型过滤+地理范围限制双管齐下:

  • 只靠类型参数的话,API不知道你要哪个区域的地址,输入宽泛的关键词(比如"V")自然会优先返回国家、城市这类大区域结果;
  • 加上地理范围限制(比如用户当前位置附近,或者你业务覆盖的区域),再配合精准的类型列表,就能过滤出目标街道地址了。

2. 旧type: ["address"]参数的替代方案

新版API里,旧的type参数被拆分成了更细粒度的includedPrimaryTypes和includedSecondaryTypes,其中includedPrimaryTypes就是用来替代旧type: ["address"]的核心参数,但你需要指定更具体的类型值,而不是笼统的"address"。

3. includedPrimaryTypes的正确用法

你之前的类型列表少了几个关键值,而且没加地理范围限制,所以效果不好。试试下面的配置:

  • 类型列表建议包含:"street_address"(完整街道地址,带门牌号)、"premise"(独立楼宇/建筑)、"route"(街道本身,不带门牌号),这三个基本能覆盖所有用户需要的街道级地址;
  • 加上locationBias或者locationRestriction来缩小地理范围,比如用用户的当前坐标+半径,或者指定一个城市的边界。

给你修改后的代码示例:

const { AutocompleteSuggestion } = await google.maps.importLibrary("places");

// 假设你能获取到用户的当前位置坐标
const userLocation = new google.maps.LatLng(37.7749, -122.4194); // 示例:旧金山坐标

const { suggestions: fetchedSuggestions } = await AutocompleteSuggestion.fetchAutocompleteSuggestions({
  input,
  sessionToken: token.value,
  // 正确的类型列表
  includedPrimaryTypes: ["street_address", "premise", "route"],
  // 限制结果在用户位置50公里范围内,按需调整半径
  locationBias: {
    center: userLocation,
    radius: 50000, // 单位:米
  },
});

suggestions.value = await Promise.all(
  fetchedSuggestions.map(
    async (suggestion: google.maps.places.AutocompleteSuggestion) => {
      const place = suggestion.placePrediction.toPlace();

      await place.fetchFields({
        fields: ["formattedAddress"],
      });

      return {
        placePrediction: suggestion.placePrediction,
        formattedAddress: place.formattedAddress,
      };
    },
  ),
);

另外补充个小细节:如果你的业务只针对特定国家,还可以加上region参数(比如region: "us"),进一步过滤掉其他国家的结果,这样输入关键词时就不会出现越南这种跨区域的结果了。

备注:内容来源于stack exchange,提问作者Floky99

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 19:43:06