[英]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.