Клуб API Карт

Удаление старых меток

Пост в архиве.

Всем добрый день!

Есть функция, котрая выполняется каждые 5 сек, в результате чего ыводится метки на карте

 

var myPlacemark = [];
function (data) {
    console.log(data);
    var a = data;
    for(var i = 0; i < a.length; i++) {
        var ch = a[i].ch,
            poz = a[i].poz,
            la = a[i].la,
            lo = a[i].lo;
        var img =
            "/../../../images/poz.php?ch=" +
            ch + "&poz=" + poz +
            "&rnd=" + poz;
        console.log(img);
        ymaps.option.presetStorage.add(
            "my#customIcon" + ch + poz, {
                iconImageHref: img,
                iconImageOffset: [-12, -
                    12
                ],
                iconImageSize: [34, 34]
            });
        myPlacemark = new ymaps.Placemark(
            [la, lo], {
                iconContent: ""
            }, {
                preset: "my#customIcon" +
                    ch + poz
            }, {
                draggable: true
            });
        myCollection.add(myPlacemark);
        obj1 = myPlacemark;
    }
}
myMap.geoObjects.add(myCollection);
}

 

Я хотел бы вызвать новй метод чтобы перерисовать метки myMap.container.fitToViewport() но при этом удалить старе метки методом MyCollection.removeAll() , подскажите как это реализовать?

4 комментария

Зачем перерисовывать метки каждые 5 секунд?

Ярослав Кузнецов
28 января 2016, 01:15

У меня есть группа меток, которые я хочу обновлять при каждом заходе посетителей на сайт, для этого я написал AJAX запрос

Метки у меня обновляться путем удаления всех геобъектов с карты, это впринципе работает, но я бы хотел осуществить следующую процедуру:

если у метки не изменились данные - то оставить ее без изменения, в противном случае просто ее перерисовать( без удаления всех геобъектов)

Все местки у меня храняться в MyCollection ( число меток каждый раз может быть разным!)
Как мне поступить в данном случае? 

Приходить новый набор меток.

- Проходите по тем что есть

- Совпадения откладываете в сторонку

- Недостающие добавляете

- Без совпадений из старой группы - удаляете.

Для этих целей удобно хранить обьекты не только в группе, а еще "где-то у себя".

Ярослав Кузнецов
28 января 2016, 01:15

Спасибо, я прекрасно понимаю логику, а вот с практикой беда. могли бы пример показать?