Пакеты 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 аргумента:

  1. Первым аргументом указывается маска URL адреса CDN. Например, в маске 'https://cdn.jsdelivr.net/npm/{package}' на место {package} будет подставлено имя пакета.
  2. Вторым аргументом имя или список имен пакетов, которые необходимо загрузить из этого 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