Клуб API Карт

Отложенная загрузка карт

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

Предусмотрена ли для Яндекс карт отложенная загрузка, наподобие как у Директа. Чтоб карта грузилась после того как всё остальное загружено?

 

6 комментариев
Александр Новиков
28 января 2016, 07:45
В большинстве случаев так и происходит. А также есть возможность указать что бы API грузилось по запросу. Т.е. сначала грузится небольшое "ядро", а потом вы из своего скрипта можете дать команду на загрузку всего АПИ
У меня страница грузится до того места в котором карта установлена и то что в коде ниже расположено не открывается пока она не загрузится. С медленной связью совсем некомфортно получается.
…про загрузку по запросу, где подробнее можно прочитать? (у меня геокодер используется).
Александр Новиков
28 января 2016, 07:45
Т.е. у вас идет div для карта и потом сразу код инициализации карты? Так сделайте запуск инфиализации карты и ее последующие использование после того как страница загрузиться целиком... Загрузка АПИ по требованию: http://api.yandex.ru/maps/jsapi/doc/dg/tasks/api-loading.xml

Что-то не работает у меня загрузка по требованию, только кнопка появляется, но при нажатии на неё ничего не происходит …(без загрузки по требованию карта работает)

Что не так в этом коде?:







Вы потеряли несколько скобочек. Правильный код вот такой:
function init () {
    var map = new YMaps.Map(document.getElementById("YMapsID"));

    //Добавляем элементы управления.
    map.addControl(new YMaps.TypeControl());//Тип карты, кнопки Схема, Гибрид, Спутник
    map.addControl(new YMaps.ToolBar());//Тулбар, Кнопки Рука, Лупа, Линейка
    map.addControl(new YMaps.Zoom());//Увеличение
    // map.addControl(new YMaps.MiniMap());//Миникарта внизу
    map.addControl(new YMaps.ScaleLine());//Шкала увеличения

    // Создание объекта геокодера
    var geocoder = new YMaps.Geocoder("Адрес объекта");

    // По завершению геокодирования инициализируем карту первым результатом
    YMaps.Events.observe(geocoder, geocoder.Events.Load, function (geocoder) {
        if (geocoder.length()) {
            map.setBounds(geocoder.get(0).getBounds());

            // Создание метки с всплывающей подсказкой
            var placemark = new YMaps.Placemark(map.getCenter(), {hasHint: 1});
            placemark.name = "Текст подсказки";

            // Добавление метки на карту
            map.addOverlay(placemark);
        }
    });
}
Спасибо