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

Google Place Autocomplete API限制印度搜索报错及替代方法咨询

排查Google Place Autocomplete印度地区搜索失败的问题

我来帮你梳理下这个问题的可能原因和解决方案,毕竟我也踩过类似的地区适配坑:

可能的错误点

1. 国家代码使用不规范

Google Places API的setCountry方法要求传入ISO 3166-1 alpha-2格式的国家代码(即两个字母的缩写)。虽然"UK"能正常工作(API兼容了这个非规范写法,英国的标准代码其实是"GB"),但印度必须用"IN"才行。如果你写的是"India"或者其他非标准拼写,肯定会导致搜索失败。

2. 自定义过滤逻辑冲突

你提到通过代码过滤自动完成结果,很大概率是你的过滤规则太严格,或者对印度城市的属性判断有误:

  • 比如你过滤时只保留types为"locality"的结果,但印度部分城市的类型可能是"administrative_area_level_2";
  • 或者你的过滤条件误排除了符合要求的结果,导致没有数据返回,触发了“Can't load search results”提示。

3. API权限/配额的隐性问题

虽然UK地区能运行,但还是要确认:

  • 你的API密钥是否真的启用了Places API(有时候可能误操作关掉了);
  • 有没有针对印度地区的IP或请求限制(这种情况少见,但如果密钥设置了地域限制就会出问题)。

快速排查步骤

  1. 先简化测试:暂时移除所有自定义过滤代码,只保留setCountry("IN")的基础配置,看是否能正常返回结果。如果可以,那问题肯定出在你的过滤逻辑上。
  2. 修正国家代码:确保使用setCountry("IN")替代任何非标准写法。
  3. 检查API控制台:登录Google Cloud Console,确认Places API已启用,并且配额没有耗尽(在「API和服务」→「配额」里查看)。

其他限制自动完成结果的方法

除了setCountry,还有几种更灵活的限制方式:

  • 按类型限制:用types参数指定结果类型,比如types=(cities)只返回城市,types=administrative_area_level_1返回印度的邦/省;
  • 按地理范围限制:结合location和radius参数,设置印度的中心经纬度(比如20.5937, 78.9629)和合适的半径(比如3000000米,覆盖印度全境),再加上strictBounds: true可以强制只返回范围内的结果;
  • 按行政区限制:用componentRestrictions可以更精准,比如限制到某个邦:
    componentRestrictions: {
      country: 'IN',
      administrativeArea: 'MH' // 马哈拉施特拉邦
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:29:20