Клуб API Карт

Загружена ли карта? API 2.1

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

Как определить, что карта загружена полностью (не API и не DOM-дерево, а именно карта), чтобы продолжилось выполнение JavaScript кода?

Спасибо!

7 комментариев
чем ymaps.ready() не устраивает?

ymaps.ready() ждет когда загрузится API и DOM-дерево. После, создается карта. Вот как бы определить, что именно карта полностью загрузилась (картинка карты с элементами управления)!!!

 

ymaps.ready(function () {
    var myMap = new ymaps.Map('YMapsID', {
        center: [55.733835, 37.588227],
        zoom: 12
    });
});

Как определить, что код(жирным) выполнен и пользователь видит карту, и может пользоваться элементами управления?

 

нууу как-то так....;-)

Зачем Вам это нужно?

Хочу поставить индикатор загрузки!

Карта полностью функциональна после создания,

и вы можете с ней работать.

Ждать загрузки всех тайлов бессмысленно, т.к. некоторые из них могут и никогда не загрузиться, так что есть вероятность что такое событие никогда не сработает.

dimik,
Как-то нехорошо, для плавной загрузки карты хотелось бы понимать, когда она загружена полностью
Может быть кому-нибудь пригодится

/* «Яндекс Карта» НЕ загружена  — начальное значение */
let loaded_map = false;
/* «Яндекс Карта» НЕ загружена */
if (!loaded_map) {

    /* запуск setInterval каждые 500 милисекунд — ищем объект «Яндекс Карты» */
    let timerID = setInterval(function () {
        /* найден объект «Яндекс Карты» */
        if (typeof ymaps !== "undefined") {
            /* «Яндекс Карта» загружена — выполняем нужный нам код */

            ...
            /* «Яндекс Карта» успешно загружена */
            loaded_map = true;
            /* останавливаем setInterval */
            clearInterval(timerID);
            }
        }, 500);
    }