#google-maps-api-3
#google-maps-api-3
Вопрос:
var markers = new Array();
$(function () {
$.ajax({
url: "json.php",
data: {get: 'value'},
success: function(data){
$.each(data, function(i, item) {
markers.push([data[i].filename, data[i].date, data[i].lat, data[i].long]);
});
var myOptions = { disableDefaultUI: true, mapTypeId: google.maps.MapTypeId.ROADMAP }
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
setMarkers(map, markers);
}
});
$("a.imglink").fancybox({
'speedIn' : 600,
'speedOut' : 200
});
});
function setMarkers(map, markers) {
var bounds = new google.maps.LatLngBounds();
for (var i = 0; i < markers.length; i ) {
var siteLatLng = new google.maps.LatLng(markers[i][2], markers[i][3]);
var marker = new google.maps.Marker({
position: siteLatLng,
map: map,
animation: google.maps.Animation.DROP,
title: markers[i][1],
html: markers[i][0]
});
google.maps.event.addListener(marker, "click", function () {
$('.imglink').attr('href', 'img/' this.html);
$('.imglink').click();
});
bounds.extend(siteLatLng);
map.fitBounds(bounds);
}
}
Работает отлично, но все мои маркеры удаляются одновременно. Есть ли какой-либо способ добавить задержку между каждым маркером? Спасибо!
Ответ №1:
Взгляните на setInterval
. Я думаю, это могло бы помочь вам с вашей проблемой. Таким образом, вы заставляете маркеры удаляться по одному за раз. Когда все будет удалено, вы можете использовать clearInterval
, чтобы остановить это.
Вот руководство
Ответ №2:
На случай, если кто-нибудь столкнется с этим вопросом, не найдя ответа в Google, вот ссылка на Google, отвечающий на этот вопрос напрямую: https://developers.google.com/maps/documentation/javascript/examples/marker-animations-iteration