我是google map的api的新用户,发现自己无法运行回调函数。我将服务和映射定义为全局变量,因此这就是我访问它们的方式。我尝试了所有我能想到的变体,但现在已经困扰了几个小时。我试图按照文档进行操作,但是代码仍然永远不会执行回调函数。
/* var myLatLng = {lat: 44.977276, lng: -93.232266};
map = new google.maps.Map(document.getElementById('map'), {
center: myLatLng,
zoom: 14
});
*/
// service = new google.maps.places.PlacesService(map);
// Both in the html file
// <script src="https://maps.googleapis.com/maps/api/jskey=MyKeyIsInHere&libraries=places"></script>
// <script src="https://maps.googleapis.com/maps/api/jskey=MyKeyIsInHere&callback=initMap" async defer></script>
function callback(results,status) {
console.log(results);
console.log(status);
if (results.status == google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
var place = results[i];
createMarker(results[i]);
}
}
}
$("#form").submit(function(e) {
e.preventDefault(); // added **** for infor that was taken out
var Key = "******";
var form = $('#form :input');
var curLoc = new google.maps.LatLng(***,***);
var request;
request = {
location: curLoc,
radius: parseInt(form[0].value),
query: form[1].value,
key: Key
};
service.textSearch(request,callback);
});
答案 0 :(得分:0)
当您一次具有多个Google API链接时,可能会发生此错误。 例如
<script src="https://maps.googleapis.com/maps/api/js?key=MyNum&callback=initMap&libraries=places" async defer></script>
这会导致回调函数无法正常工作。