Перейти к основному содержимому

dg-loading

Описание

Работа с картой возможна только после того, как в браузер будет загружен код API карт. Есть несколько способов его загрузки.

Простой способ

Сперва подключим API карт, поместив в секцию head HTML-страницы следующий код:

<script src="https://maps.api.2gis.ru/2.0/loader.js?pkg=full"></script>

Затем воспользуемся функцией DG.then, в которую поместим код инициализации карты:

DG.then(function () {
map = DG.map('map', {
center: [54.98, 82.89],
zoom: 13,
});
});

Внутри себя эта функция добавляет обработчик события загрузки страницы. Именно такой способ рассматривался в разделе Быстрый старт.

npm

API карт можно подключить через npm:

$ npm i 2gis-maps

После установки пакета подключим его через require:

var DG = require('2gis-maps');
var map = DG.map('map', {
center: [54.98, 82.89],
zoom: 13,
});

Обратите внимание, что при использовании npm-пакета использовать DG.then не нужно.

Загрузка по требованию

Вы можете загрузить API карт именно в тот момент, когда карта станет нужна. Для этого в URL подключения API необходимо добавить параметр lazy=true:

<script src="https://maps.api.2gis.ru/2.0/loader.js?pkg=full&lazy=true"></script>

Затем в нужный момент времени (например, при нажатии на кнопку) необходимо вызвать функцию DG.then:

DG.then(function () {
map = DG.map('map', {
center: [54.98, 82.89],
zoom: 13,
});
});

Опции подключения

Ниже описаны все опции, которые может принимать URL загрузки API карт:

ОпцияПо умолчаниюОписание
pkgfullПакет загружаемых модулей. На данный момент поддерживается 2 пакета: full — все модули API; basic — базовая функциональность (попапы, маркеры, векторные объекты).
skindarkТема управляющих элементов (светлая или темная). Принимает значение light или dark.
lazyfalseЕсли указать значение true, тогда API карт загрузится отложенно, при первом вызове DG.then.

Функция DG.then

Как было описано ранее, функция DG.then отвечает за отслеживание момента загрузки API карт и добавление обработчиков этого действия. Параметры функции:

ВызовВозвращаетОписание
DG.then( <Function> resolve, <Function> reject )PromiseРегистрирует обработчики загрузки API. Пареметры: resolve — функция, срабатывающая при успешной загрузке API карт, reject — функция, срабатывающая в случае ошибки сервера.

Вызов функции DG.then в любой момент после загрузки API мгновенно выполнит обработчик.