Клуб API Карт

Как добавить метки по клику ?

salpeev
16 сентября 2014, 16:07

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

// перезагрузка результатов 
$("#reload_results").click(function() {
    myMap.geoObjects.remove(clusterer);
    var massive_coord = $(".coords");
    massive_coord.each(function(i) {
            new_object = objects.add(ymaps.geoQuery(ymaps.geocode($(this).text(), {
                    results: 1
                }))
            });
        var clus = new_object.clusterize(); myMap.geoObjects.add(clus); console.log($(this).text());
    });
}); 


console.log показывает что массив адресов собирается , я удаляю все метки с карты чтобы вывести новые (после фильтрации объектов недвижимости )  но новые метки почему то не появляются , почему ?

6 комментариев
Подписаться на комментарии к посту

вы некорректно накапливаете объекты в выборке new_object

У вас в каждой итерации цикла берется выборка objects, к ней добавляется один объект и этот результат пишется в newObject.

Затем берется второй объект, он добавляется к старой выборке objects и это перезаписывается в new_object

После окончания цикла в new_objects будет содержимое выборки objects + один последний объект, который обработался в цикле

да я заметил , это опечатка , я исправил objects.add на new_object.add но по прежнему не работает =(

Пришлите ссылку на страницу с проблемой

вот http://propery.test.lmrk.ru/ нужно нажать на "посмотреть объекты на карте "  но после добавления  new_object = objects.add(ymaps.geoQuery(ymaps.geocode($(this).text(),{results: 1}))  карта перестает работать

При загрузке страницы в консоль падает ошибка, при клике на "посмотреть объекты на карте" вообще ничего не происходит

а должна раскрыться карта , сейчас я уберу  new_object = objects.add(ymaps.geoQuery(ymaps.geocode($(this).text(),{results: 1}))  и попробуйте