Пакеты JS API
Пакеты JS API предоставляют дополнительную функциональность в JS API, которая не входит в основное API и модули.
Важно
Пакеты не гарантируют обратную совместимость, и в отличие от модулей - подключаются через пакетные менеджеры.
Подключение пакетов
К примеру, пакет с дефолтными элементами управления можно подключить разными способами:
Через пакетный менеджер
Установить пакет в свой проект:
npm install @yandex/ymaps3-default-ui-theme
После этого импортировать в коде:
import {YMapDefaultMarker} from '@yandex/ymaps3-default-ui-theme';
map.addChild(
new YMapDefaultMarker({
coordinates: [34, 54],
title: 'Hello World!',
subtitle: 'kind and bright'
})
);
Через CDN
Для примера будем использовать jsdelivr в качестве CDN.
В JS API есть готовый механизм для импорта пакетов из CDN.
Сперва CDN нужно зарегистрировать в JS API с помощью ymaps3.import.registerCdn.
Эта функция принимает 2 аргумента:
- Первым аргументом указывается маска URL адреса CDN. Например, в маске
'https://cdn.jsdelivr.net/npm/{package}'на место{package}будет подставлено имя пакета. - Вторым аргументом имя или список имен пакетов, которые необходимо загрузить из этого CDN.
После этого можно импортировать компоненты из пакета в проект с помощью ymaps3.import.
// добавляем loader для пакета, где указываем из какого CDN загружать
ymaps3.import.registerCdn('https://cdn.jsdelivr.net/npm/{package}', [
'@yandex/ymaps3-default-ui-theme@<PACKAGE_VERSION_HERE>'
]);
// после этого можем импортировать компоненты из пакета в проект
const {YMapDefaultMarker} = await ymaps3.import('@yandex/ymaps3-default-ui-theme');
map.addChild(
new YMapDefaultMarker({
coordinates: [34, 54],
title: 'Hello World!',
subtitle: 'kind and bright'
})
);
Доступные пакеты
| npm-пакет | Описание |
|---|---|
| @yandex/ymaps3-cartesian-projection | Projection package cartesian-projection |
| @yandex/ymaps3-clusterer | Clusterer |
| @yandex/ymaps3-default-ui-theme | Map elements with default UI theme |
| @yandex/ymaps3-hint | Hints Package |
| @yandex/ymaps3-web-mercator-projection | Projection package web-mercator-projection |