sittingbull
@sittingbull
Front-end Developer

Как постепенно отображать координаты на Яндекс Карте?

Всем доброго времени суток! Как я могу постепенно, через какой-то промежуток времени отображать на Яндекс Карте, хранимые в массиве координаты? Я понимаю, что это несколько искусственная ситуация, но все же. Первое, что пришло мне на ум, так это использовать setTimeout и setInterval перед вызовом функции отрисовки точки.

// Функция ready вызовется тогда, когда API будет загружен и DOM сформирован
ymaps.ready(init);

var myMap, myPlacemark;

// Массивы координат
var Latitude = [53.8912, 53.8916, 53.8923, 53.8928,]
var Longitude = [27.5669, 27.5669, 27.5663, 27.5662,]

function init(){ 
    myMap = new ymaps.Map("map", {
        center: [Latitude[0], Longitude[0]],
        zoom: 10
    });

    for(i = 0; i < Latitude.length; i++) {
        setTimeout(addPoint, 5000, myMap, Latitude[i], Longitude[i]); 
    }
}

function addPoint(Map, lat, lon) {
    myPlacemark = new ymaps.Placemark([lat, lon, { 
        content: 'Current location', 
        balloonContent: 'myBalloonContent' 
    });

    Map.geoObjects.add(myPlacemark);
}


Но у меня отображается только одна единственная координата. Подскажите, пожалуйста, как сделать так, чтобы через каждые пять секунд на карту добавлялась новая точка. Можно сделать так, чтобы при добавлении новой точки обновлялся только контейнер с картой, а не вся страница?
  • Вопрос задан
  • 517 просмотров
Пригласить эксперта
Ответы на вопрос 1
forgotten
@forgotten
Руководитель разработки API Яндекс.Карт
Вы делаете стандартную ошибку человека, не знакомого с JavaScript. В вашем коде будет 4 раза добавлена метка с одними и теми же координатами.
javascript.ru/book/definitiveguide раздел «Область видимости функций и замыкания»
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы