繁体   English   中英

Google Maps Geocoding API“此服务需要API密钥”

[英]Google Maps Geocoding API “This service requires an API key”

我正在尝试使用Google地理编码API。 但是,即使提到API密钥后,我仍然出现以下错误。 此服务需要API密钥。 有关身份验证和Google Maps JavaScript API的更多信息

以下是我的带有API密钥的HTML条目:

<script src="//maps.googleapis.com/maps/api/js?v=3.exp&key=AIzaSyAa7LqHyZpHtQBGR6415pYu1FnwWQBPcnY" type="text/javascript"></script>

这是我得到REQEST_DENIED的angularjs代码

    function geocode(dataset){
var coords = [];
var address = dataset.address;
var geocoder = new google.maps.Geocoder();
var defer = $q.defer();
geocoder.geocode({'address': address}, function( results, status ) {
        if (status === google.maps.GeocoderStatus.OK) {
            coords[0] = results[0].geometry.location.lat();
            coords[1] = results[0].geometry.location.lng();
            dataset["coordinates"]=results[0].geometry.location;
            defer.resolve(dataset);
        }
        else {
            coords = 'Could not retrieve coordinates for: ' + address;
            defer.reject();
        }
    });
return defer.promise;
}

我有什么想念的吗? 谢谢。

因此,按照上面的评论,当我在执行@FadiAboMsalam的提琴后检查了网络层时,我可以看到API密钥被发送到了请求URL中,而请求URL在我的请求中丢失了。 不知道为什么geocoder.geocode(....)没有在我的请求中发送api ley。 我更改此代码以发送$ http请求,并且给出了适当的回复。 这是更新的代码:

  function geocode(dataset){
    var coords = [];
    var address = dataset.address;
    var geocoder = new google.maps.Geocoder();
    var defer = $q.defer();


 $http.get('https://maps.googleapis.com/maps/api/geocode/json?address=' + 
            address + '&key=xxxxxxxx')
    .then(function(results){
     if (results.status === 200) {
        var data = results.data.results;
            dataset["coordinates"]=data[0].geometry.location;
            defer.resolve(dataset);
         }
         else {
             coords = 'Could not retrieve coordinates for: ' + address;
             defer.reject();
         }
     },
     function error(_error){
        defer.reject();
     });

    return defer.promise;
}

感谢@PaulThomasGC和@FadiAboMsalam提供了有用的意见,以及其他一些宝贵的时间。

干杯!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM