我正在尝试使用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;
}
我有什么遗失的吗? 谢谢。
答案 0 :(得分:0)
根据上面的评论,当我从@FadiAboMsalam执行小提琴后检查网络层时,我可以看到API密钥被发送到我的请求中缺少的请求URL。 我不确定为什么geocoder.geocode(....)没有在我的请求中发送api ley。我更改此代码以发送$ http请求,它正在给予适当的repsonse。这是更新的代码:
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提供有用的投入和其他投资宝贵时间。
干杯!