如何使用.geocomplete减少对GoogleMaps API的请求数量

时间:2019-06-04 16:50:45

标签: jquery geocomplete

我的网页上输入了带有“ geocomplete”的文字。每个keyPress事件都会向GoogleMaps API发送请求。我想通过每3个字符(不是每个字母)发送请求或在请求之前设置延迟的方式来更改此行为。

我尝试使用geocode:beforegeocomelete_search事件,但是它不起作用。

$("input").geocomplete()
                .bind("geocode:beforegeocomelete_search", function(event, results){
                    if ( $("input").val().length < 4) {
                        throw "At least 3 characters required for request sending";
                    }
                });

您对此有任何想法吗?

1 个答案:

答案 0 :(得分:0)

不确定您使用的是哪个版本的Geocomplete。 https://github.com/ubilabs/geocomplete/的版本具有trigger(),当input满足length要求时,您可以调用该版本。

请注意:由于某些原因,外部库似乎未加载到摘要中。

let geo = $('.geocomplete');

geo.geocomplete();
geo.on('input', function() {
  let el = $(this);
  
  if (el.val().length > 3) {
    el.trigger("geocode");
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://raw.githubusercontent.com/ubilabs/geocomplete/master/jquery.geocomplete.min.js"></script>
<input class="geocomplete" />