Клуб API Карт

res.geoObjects.each возвращает не все объекты

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

загружаю объекты через XML и вывожу их так

res.geoObjects.each(function (item) { 

для того, чтобы на каждый объект прописать событие 

item.events.add('click', function (e) {

----

Xml http://veq.ru/compass/get_pl_xml.aspx?v= возвращает 4 объекта.

А на карту http://veq.ru/compass/ выводится только два.

-----

если я использую вывод через 

myMap.geoObjects.add(res.geoObjects);

то выводится все 4 объекта из Xml

---

подскажите что поправить.

 

ЗЫ: и еще вопрос - можно ли подобный обработчик прописать как то иначе, без перебора each 

 

5 комментариев
Дмитрий Тимофеев
27 января 2016, 23:14

упорно 

res.geoObjects.each(function (item) {

выдает только половину объектов из XML

такое ощущение, что он шагает через один объект.

может у него шаг цикла равно два ... 

Дмитрий Тимофеев
27 января 2016, 23:14

Делая .add на геообъекте Вы меняете ему родителя = добавляете в другую коллекцию = удаляете из текущей

Делая это в итераторе each Вы удаляете элементы из коллекции которую перебираете. Отсюда такой эффект

Коллекции в АПИ поддерживают делегирование событий. Достаточно одного обработчика на myMap.geoObjects

Дмитрий Тимофеев
27 января 2016, 23:14

спасибо