Клуб API Карт

Не выводятся на карту точки из вложенных GeoObjectCollection в YMapsML

Ё
30 июня 2014, 15:29

Здравствуйте.
Пытаюсь вывести на карту точки из файла следующей структуры:

<ymaps>
<GeoObjectCollection>
<gml:featureMembers>
<GeoObjectCollection><gml:featureMember><GeoObject></GeoObject></gml:featureMember></GeoObjectCollection>
<GeoObjectCollection><gml:featureMembers><GeoObject></GeoObject><GeoObject></GeoObject></gml:featureMembers></GeoObjectCollection>
</gml:featureMembers>
</GeoObjectCollection>
</ymaps>



На карте появляется только одна точка из первой GeoObjectCollection, а две других точки из второй коллекции игнорируются.

Код добавления точек такой:
 

        // Загрузка YMapsML-файла
        ymaps.geoXml.load('ссылка_на_файл_с_точками').then(
            function (res) {
                // bounds - заданная область показа карты
                var bounds = res.mapState.getBounds();
                
                // Добавление коллекции геообъектов на карту
                res.geoObjects.each(function (obj) {
                    myMap.geoObjects.add(obj);
                });
                
                // Изменение области показа карты
                myMap.setBounds(bounds);  
            }
        );

 

Ошибок в консоли нет, res.geoObjects.getLength() возвращает единицу.

Как мне вывести все точки из файла на карте?

2 комментария
Подписаться на комментарии к посту
Так добавлять неправильно (это все равно что удалять в цикле)
                res.geoObjects.each(function (obj) {
                    myMap.geoObjects.add(obj);
                });

добавляйте res.geoObjects целиком или можно делать так:
var geoObject;
while (geoObject = res.geoObjects.get(0)) {
    myMap.geoObjects.add(geoObject);
}

спасибо, с вашим вариантом заработало.