ajax を使用して場所のリストを取得し、ajax の結果から作成された配列に基づいて Google マップをマークします。コールバック関数を作成して、ajax 呼び出し、配列の構築、Google マップのすべての同期のマーク付けを行うにはどうすればよいですか (updateMapMarkers() は呼び出されません)。これが私のコードです。ありがとう
// main function to do work
// need timer calling getLocations()
function loadMapList() {
// initial google map here
var count = 40;
$("#countdown").html(count + " seconds remaining!");
getLocations();
count--;
timeout = setInterval(function(){
$("#countdown").html(count + " seconds remaining!");
if (count == 0) {
count =40;
getLocations();
}
count--;
}, 1000);
}
// using ajax to get location info
function getLocations(){
var url = "getLocations";
$.ajax({
type: 'GET',
url: url,
dataType: 'json',
async: false,
success: function(data){
if (data.locationList == null || data == 'undefined') {
return;
}
allLocArray.length = 0;
for (i in data.locationList) {
allLocArray[i] = new Array(3);
allLocArray[i][0] = data.locationList[i].LOCATE_NAME;
allLocArray[i][1] = data.locationList[i].LATITUDE;
allLocArray[i][2] = data.locationList[i].LONGITUDE;
}
},
error: function(xhr, textStatus, error){
alert(xhr.statusText);
alert(textStatus);
alert(error);
}
});
}
// mark google map using global var array
function updateMapMarkers() {
var myOptions = {
zoom: zoomLevel,
center: new google.maps.LatLng(centerLat, centerLong),
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
for (var i=0; i<allLocArray.length; i++) {
var myLatLng = new google.maps.LatLng(allLocArray[i][1], allLocArray[i][2]);
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
title:allLocArray[i][0]
});
}
}