Skip to content

SDK и API — обзор ​

Справочник по @evamaps/sdk. Всё, что не описано здесь, может измениться без предупреждения.

Статусы в таблицах: ✅ есть · 🔜 скоро · ⏳ позже.

Главное ​

  • Координаты везде [lng, lat] (долгота, широта — как в GeoJSON) или объект {lng, lat}.
  • Методы возвращают this, их можно вызывать цепочкой. Событие приходит объектом с lngLat, point и originalEvent.
  • Балун — это Popup.
  • HTML из строк не разбирается: текст задаётся через setText, своя разметка — DOM-узлом через setContent(node).
  • Подпись © OpenStreetMap contributors · © EvaMaps видна всегда, см. «Атрибуция».
  • Сборка для <script> добавляет один объект window.EvaMaps, сборка для npm — ничего.
  • Зум в покое целый (zoomSnap: 1), чтобы подписи на карте были чёткими.
  • Во встраиваниях колесо мыши масштабирует карту только с Ctrl, чтобы не мешать прокрутке страницы.

Шкала зума — как у OSM (тайл 256 px): зум 0 — весь мир умещается в 256 px.

Установка ​

Одним <script> (CDN) ​

html
<link rel="stylesheet" href="https://evamaps.ru/sdk/1/evamaps.css">
<script src="https://evamaps.ru/sdk/1/evamaps.js"></script>

IIFE-сборка кладёт единственный глобальный объект window.EvaMaps. В нём — create(), классы (Map, Marker, Popup, …) и фабрики без new (EvaMaps.marker(...), EvaMaps.popup(), …).

Из npm (ESM) ​

bash
pnpm add @evamaps/sdk
ts
import { create, Marker, Popup } from '@evamaps/sdk';
import '@evamaps/sdk/style.css';

В ESM-сборке фабрики (marker(), popup(), …) тоже экспортируются — но обычно проще использовать классы напрямую (new Marker(...)).

EvaMaps.create() ✅ ​

Самый быстрый способ получить карту: create(container, options) — тонкая обёртка над new Map(...) + TileLayer с нашими тайлами, темой, атрибуцией и контролами по умолчанию.

ts
const map = create('map', { center: [37.6173, 55.7558], zoom: 12, theme: 'light' });
ОпцияТипПо умолчанию
centerLngLatLike[37.6173, 55.7558]Москва
zoomnumber11
theme'light' | 'dark' | 'gray''light'Тема подложки
keystring—Ключ проекта, необязателен
tilesUrlstringhttps://evamaps.ru/v1/{theme}/{z}/{x}/{y}{r}.pngСвой сервер тайлов (коробка, разработка)
minZoom / maxZoomnumber0 / 19
zoomSnapnumber1См. «Map»
zoomControlbooleantrueКнопки +/−
scaleControlbooleantrueЛинейка
cooperativebooleanfalseКооперативные жесты, см. «Map»
retinabooleantrue⏳ Тайлы @2x на экранах с DPR ≥ 1.5 — опция принимается ради совместимости API, пока ни на что не влияет

Также в EvaMaps: marker(), popup(), polyline(), polygon(), circle(), geoJSON(), cluster() — фабрики для IIFE-сборки. EvaMaps.version — строка версии SDK.

Дальше по справочнику ​

  • Map — опции, методы вида, слои, события карты
  • Слои — TileLayer, Marker, Popup, фигуры, GeoJSONLayer, ClusterLayer
  • Контролы — зум, линейка, атрибуция
  • События — все события карты, меток и кластеров в одном месте
  • Типы — LngLat, LngLatBounds, Point и другие
  • Примеры — живые карты с кодом рядом, который можно скопировать

Нашли ошибку в документации? Напишите нам