我有一个函数可以使用谷歌api,这个函数已经使用多年了。我们不得不获得一个新的api密钥,但现在似乎什么都不起作用。结果是,由于geocoder.geocode中的代码不起作用,我在警报(地址(行之后没有得到任何输出。没有错误,因为geocode.geocode代码只是无法工作,它会跳到最后一个警报。
//in view to call the function
<input type="button" value="calculate" id="calculate_address_lat_long" class="btn btn-info btn-block waves-effect waves-light">
<div class="mute" id="formated_address_lat_long"></div>
//in layout <script async defer src="https://maps.googleapis.com/maps/api/js?key=hidden" type="text/javascript"></script>
$(document).on('click', '#calculate_address_lat_long', function () {
var address = '';
address += $('#street').val();
address += ' ' + $('#suburb').val();
address += ' ' + $('#postcode').val();
address += ' ' + $('#state').val();
// alert( $('#street').val());
alert(google.maps.GeocoderStatus.OK);
alert( address);
//geocoder function fails to run with no error
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
alert('asdasd');
console.log(results);
var latitude = results[0].geometry.location.lat();
var longitude = results[0].geometry.location.lng();
$('#lat').val(latitude);
$('#long').val(longitude);
$('#formated_address_lat_long')
.html('<div class="alert alert-success">' + results[0].formatted_address + '</div>')
.fadeTo(100, 0.1).fadeTo(250, 1)
.css({"position": "relative","top": "15px"});
// alert($('#lat').val(latitude));
} else {
alert('qqqasdasd');
// alert($('#lat').val(latitude));
// alert($('#long').val(longitude));
$('#formated_address_lat_long')
.fadeTo(100, 0.1).fadeTo(250, 1)
.html('<div class="alert alert-error">Address Not Found</div>')
.css({"position": "relative","top": "15px"});
}
});
alert('1111qqqasdasd');
});
这个问题是从谷歌控制台端解决的。你不仅为谷歌地图创建了一个api密钥,而且一个鲜为人知的事实是,你必须在谷歌地图下的谷歌云控制台中激活/启用js和地理位置的api密钥。给出的代码没有任何问题,这一切都与api密钥有关,现在一切都很好