Клуб API Карт

Загрузка geoObjects (api 2.0)

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

Подскажите почему эта конструкция работает:

ymaps.geoXml.load('http://map.teploov.ru/zone.xml')
                .then(function (res) {
                    map.geoObjects.add(res.geoObjects);
                }) ;

А эта нет:

zoneh = new ymaps.geoXml.load('http://map.teploov.ru/zone.xml') ;
map.geoObjects.add(zoneh.geoObjects);
3 комментария

Потому что вы пытаетесь работать с асинхронным методом

синхронно

А как тогда добвлять?

Мне нужно еще отслеживать загрузку этого файла.

Следующая функция приводит к ошибке

zoneh.events.add("load", function() { flagLoad = true;}) ;

Зделал вот так, вроде заработало.

            buttonZone.events.add("select",
                function(){
                    zoneh.then (
                        function (res) {
                            map.geoObjects.add(res.geoObjects) ;
                            flagLoad = true;
                        },
                        function (error) {
                            alert("Возникла ошибка: " + error.message);
                            flagLoad = false;
                        }
                    )
                }) ;

Правда не знаю насколько хорошо понял примеры.