【问题标题】:Debouncing Google Maps Autocomplete去抖动谷歌地图自动完成
【发布时间】:2023-03-22 01:52:01
【问题描述】:

美好的一天。

现在我正在使用谷歌地图来自动完成我的服务中的地址。 这是代码:

autocomplete = new google.maps.places.Autocomplete(
    /** @type {!HTMLInputElement} */
    (document.getElementById('address_field')),
    {
        types: ['address'],
        componentRestrictions: {country: 'us'}
    }
);

当我输入时,它会 ping 谷歌服务器以获取建议。
这些 ping 占用了大量令牌。

所以我在想 - 有没有办法消除请求?

我尝试使用 debounce 库对其进行去抖,但这显然不起作用。
还尝试向选项对象添加延迟:300,仍然没有。

任何帮助将不胜感激

编辑:在 2019 年 5 月更改 Google 地图的定价之后。您不再按请求付费,而是按自动完成会话付费。不管用户输入了多少搜索查询,它们都将被计为一个会话。 从而使这个问题变得毫无意义。

【问题讨论】:

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


    【解决方案1】:

    您可以使用Retrieving Autocomplete PredictionsPlace Details 自定义谷歌地图自动完成组件

    这是一个简单的 React 演示。Custom Google Map Autocomplete

    希望对你有帮助,谢谢。

    const handleSearch = () => {
      autocompleteService.getPlacePredictions(
      {
        input: text,
        origin: latLng,
        componentRestrictions: {
          country: "NG", // country: string | string[];
        }
      }, handleSuggestions);
    }
    

    【讨论】:

      【解决方案2】:

      截至目前,Google 地图自动完成功能不支持 API 调用去抖动。虽然已经注册了与此相关的问题。

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

      【讨论】:

      • 也可以为该问题加注星标,让 Google 知道我们非常感谢此功能请求。目前只有 7 星,不算太多。
      猜你喜欢
      • 1970-01-01
      • 2016-11-17
      • 2018-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-01
      • 2015-03-22
      相关资源
      最近更新 更多