Клуб API Карт

Помогите с добавлением и удалением меток

dreval.s
27 июля 2011, 19:01

Есть такой код

            var gCollection = new YMaps.GeoObjectCollection();

            setInterval(function () {
                $.post('Handler.ashx', function (response) {
                    eval(response);
                    for (i in data) {
                        point = new YMaps.GeoPoint(data[i].Longitude, data[i].Latitude);

                        placemark = new YMaps.Placemark(point, { hideIcon: false, hasHint: 1, style: test });

                        placemark.name = data[i].Name;

                        gCollection.add(placemark);
                    };
                    map.removeAllOverlays();
                    map.addOverlay(gCollection);
                    gCollection.removeAll();
                });
            }, 100000);

то
есть я добавляю метки поочередно в коллекцию, затем удаляю все слои,
добавляю слой с коллекцией меток и очищаю коллекцию, но мне периодически
пишет такую ошибку

this.__destructListener есть null или не является обьектом

в чем может быть причина данной ошибки?

3 комментария
Подписаться на комментарии к посту
Andrey.Cjkjvfnby
27 июля 2011, 20:51

по ошибке сказать ничего не могу, так как долго воспроизводить.  В какой строке то ошибка?  Тестовые принты пробовали?

По коду есть несколько комментариев:

Зачем убирать все слои  если можно убрать только коллекцию?

Зачем такой страшный респонс? если в request передать json, то его евалить не нужно.

ya.juliazobenko
7 июня 2012, 16:33

такая ошибка возникает, когда происходит следующее:

map.addOverlay(plmrk);

map.addOverlay(plmrk);

map.removeAllOverlays();

 

т.е. добавляем дважды одну и туже метку, а потом хотим всё удалить.

как узнать, есть уже метка на карте или нет?

ya.juliazobenko
9 июня 2012, 12:58

__destructListener - проверяем свойство