Я пытаюсь загрузить маркеры на карте Google с помощью ajax-вызова. Вызов ajax занимает много времени, но карта загружается до завершения ajax-вызова. Поэтому я не вижу маркеров на карте.google maps v3 - Добавить маркеры после завершения вызова ajax
код ниже:
<script type="text/javascript">
var map;
function initialize() {
var myLatlng;
var mapOptions;
myLatlng = new google.maps.LatLng("29.9844", "-95.33389");
mapOptions = {
zoom: 12,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP };
map = new google.maps.Map(
document.getElementById("map-canvas"), mapOptions);
google.maps.event.addListenerOnce(map, 'idle', function() {
getRegions(function(result) {
alert("getRegions callback return value : " + result.regionList);
addMarkersAtRegionCenter(result);
});
});
}
</script>
function addMarkersAtRegionCenter(result) {
var length = result.regionList.length;
for(var i=0; i<length; i++)
{
var image = result.regionList[i].imageIcon;
var marker = new google.maps.Marker({
position: new google.maps.LatLng(result.regionList[i].centerLatitude,result.regionList[i].centerLongitude),
icon: image,
map: map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) { return function() {
window.location.href = marker.url;
}
})(marker, i));
}
}
function getRegions(regions, callbackRegions) {
$.ajax({
type : 'POST',
url : 'getRegions.jsp',
data : {regions: regions},
dataType: "json",
success : function(result, textStatus, jqXHR) {
// invoke the callback function here
callbackRegions(result);
},
error: function (result, textStatus, errorThrown) {
// invoke the callback function here
callbackRegions(result);
}
});
}
Я получаю ответ от сервера, который я могу увидеть в браузере. Я даю ответ ниже:
{ "regionList": [{ "centerLongitude": - 95,34890747070312, "ImageIcon": "../ изображений/непроверенных-icon.png", "centerLatitude": +29,980682373046875} , { "centerLongitude": - +95,34890747070312, "ImageIcon": "../ изображений/непроверенный-icon.png", "centerLatitude": 29,988117218017578}, { "centerLongitude": - +95,33389282226562, "ImageIcon":»../ изображения /untested-icon.png","centerLatitude":29.980682373046875},{"centerLongitude":-95.33389282226562,"imageIcon":"../images/untested-icon.png","centerLatitude":29.988117218017578}]}
Но я не могу получить ответ в предупреждающем сообщении в приведенном выше коде. Любая идея, в чем проблема?
Примите во внимание вашу помощь.
Я использую вызов AJAX в следующем коде. google.maps.event.addListenerOnce (карта, 'простаивает', функция() { \t \t Ajax вызова в методе \t \t getAirportRegions (регионы, kpiName, selectedCarrier);. }); – Srini
Пожалуйста, отредактируйте свой вопрос, чтобы включить свой код с комментариями, где вы застряли. Пожалуйста, не помещайте код в комментарии, поскольку его слишком сложно прочитать. –
См. Мой ответ ниже - я обновил его на основе вашего кода. –