谷歌自动完成服务getPlacePredictions不工作



我正试图在我的网站中启动一个自定义的自动完成。我尝试使用谷歌的地方自动完成API来实现这一点。我希望首先将预测输出到日志中,以验证它是否正常工作,但由于它似乎没有到达回调函数,我也没有收到任何错误消息。没有。

我开始添加谷歌位置库:

<script src="https://maps.googleapis.com/maps/api/js?key=[Here-I-Entered-My-API-Key]&libraries=places"></script>

之后我尝试了多种选择:

  1. 起初,我尝试使用简单的自动完成请求来查看任何结果。我输入了以下代码:

    let searchInput = $( ".search-input" )[0];
    autocomplete = new google.maps.places.Autocomplete(searchInput, {
    types: ["address"]
    });
    

这样做没有任何结果,它没有显示自动完成选项。

  1. 在我的第二次尝试中,我尝试使用自动完成服务来实现我最初想要的预测,并将其打印在控制台日志中。我输入了以下代码:

    // Create a new session token.
    let sessionToken = new google.maps.places.AutocompleteSessionToken();
    // Pass the token to the autocomplete service.
    let autocompleteService = new google.maps.places.AutocompleteService();
    autocompleteService.getPlacePredictions(
    {
    input: "Mitt",
    type: ["address"],
    componentRestriction: {country: 'de'},
    sessionToken: sessionToken
    },
    function (predictions, status) {
    console.log("Query resulted in -> " + status);
    console.log("Received " + predictions.length + " predictions");
    for(let prediction of predictions){
    console.log(prediction);
    console.log(prediction.description);
    }
    }
    );
    

只是为了验证它是否向我显示了一个结果,但看起来,它没有到达我的回调函数。

我试着从网上看到的其他用法中复制例子,但也不起作用。我不明白发生了什么事。我的API密钥是功能性的,我已经在GCP中启用了我的Places库(尽管我没有看到在GCP使用中尝试实现这一点的用法(。我没有任何错误可以用来理解问题可能是什么,只是不起作用。

我试着用我的API键使用位置REST API,它起了作用,但我不想干扰交叉源请求,我认为在这种特定的情况下没有必要这样做。

如果能提供帮助,我将不胜感激。谢谢

我已经设法解决了它。显然,导致这个问题的原因是对googleapi库的一次调用和对googleapi的一次映射回调调用。需要将其组合在一起,如下所示:

<script src="https://maps.googleapis.com/maps/api/js?key=[Here-I-Entered-My-API-Key]&libraries=places&callback=initMap"></script>

相关内容

  • 没有找到相关文章