抨击谷歌地图自动完成

Debouncing Google Maps Autocomplete

本文关键字:谷歌地图      更新时间:2023-09-26

大家好。

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

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

当我输入时,它会向谷歌服务器发出提示。
这些ping占用了很多代币。

所以我在想——有没有办法反驳这个请求?

我试过用debounce库来debounce它,但显然不起作用。
也试着给options对象添加延迟:300,仍然没有。

如有任何帮助,不胜感激

Edit:在2019年5月谷歌地图定价变化之后。您不再为每个请求付费,而是为每个自动完成会话付费。不管用户输入了多少搜索查询,它们都将被计算为一个会话。

到目前为止,Google Maps Autocomplete不支持对API调用的debounce。尽管与此相关的问题已经被记录。

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

您可以自定义谷歌地图自动补全组件检索自动补全预测和地点细节

这是一个简单的React演示。自定义谷歌地图自动完成

希望这对你有帮助,谢谢。

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