прекратить подпрыгивать маркеры после загрузки всех маркеров - PullRequest
0 голосов
/ 21 марта 2012

У меня есть маркеры, загружающие по одному за раз в секунду.Их около 50, и для их загрузки требуется время.Так что в качестве указания на то, что они все еще загружаются, я настроил их анимацию на отскок.Но как только они все загрузятся, я хочу остановить подпрыгивающую анимацию.Как мне это сделать ??

var geocoder;
var map;
var addresses = new Array();
var infowindow;
var theInterval;

function initialize() {
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(42.095287, -79.3185139);
    var myOptions = {
        maxZoom: 14,
        zoom: 9,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
    };
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    infowindow = new google.maps.InfoWindow({});
}

$(document).ready(function () {
    getAddresses();
    theInterval = setInterval("codeAddress()", 1000);
});

function getAddresses () {
    $('.LocationAddress').each(function () {
        addresses.push($(this).text());
    });
}

function codeAddress() {
    if (addresses.length == 0) {
        clearInterval(theInterval);
    }
    var addy = addresses.pop();
    geocoder.geocode({
        'address': addy
    }, function (results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            map.setCenter(results[0].geometry.location);
            var marker = new google.maps.Marker({
                position: results[0].geometry.location,
                map: map,
                title: addy,
            animation: google.maps.Animation.BOUNCE,

            });

            //Adding a click event to the marker 
            google.maps.event.addListener(marker, 'click', function () {
                infowindow.setContent('<div id=\"infowindow\" style=" height:100px;>' + '<div id=\"LeftInfo\">' + "Hello World!" + '</div>' + '</div>');
                infowindow.open(map, this);
            });
        }

    }); //Geocoder END
}

1 Ответ

0 голосов
/ 22 марта 2012

Храните список всех маркеров.

Когда все загрузится, сделайте цикл и остановите их анимацию.

В других новостях это: http://econym.org.uk/gmap/geomulti.htm стоит прочитать.Он старый - и относится к v2 API, в противном случае информация все еще актуальна.

У вас также есть ошибка по одному.ClearInterval должен вызываться после всплывающего окна.Ваша текущая установка, все еще вызовите функцию еще раз - даже если массив пуст.

...