# EvaMaps (Эва Карты) > Российский SaaS-сервис картографии для разработчиков и бизнеса. Лёгкие интерактивные карты для сайтов и приложений на базе OpenStreetMap, без cookies и трекинга посетителей, серверы только в России. Домен: evamaps.ru Документация: https://evamaps.ru/docs/ Конструктор карт (без кода): https://evamaps.ru/constructor/ Тарифы: https://evamaps.ru/pricing Кабинет (ключи, оплата): https://app.evamaps.ru/ Бесплатно: до 5 000 загрузок карты в месяц на сайт, без ключа и регистрации. Считаются сайты, где карта подключена через SDK или ``. iframe и мобильные приложения без ключа в счёт не входят. --- ## Что это такое EvaMaps — картографический API и SDK для сайтов и приложений в РФ и СНГ. Это не картографическое приложение для конечных пользователей, а инструмент для разработчиков и бизнеса: подложка (тайлы), SDK для встраивания карты на сайт, конструктор без кода. Аналог по назначению: API Яндекс Карт, 2ГИС MapGL, Google Maps JavaScript API — но легче, с серверами в РФ и коммерческим использованием на любом тарифе, включая бесплатный. --- ## Три способа встроить карту ### 1. Конструктор без кода Настройка в браузере → готовый код iframe или `` для вставки в Tilda, WordPress, Битрикс и любой HTML. Сохранённые карты — без аккаунта, по ссылке для правки. ### 2. Web component `` ```html Москва, Тверская, 1 ``` ### 3. JavaScript SDK (@evamaps/sdk) ```html
``` Или из npm: `npm i @evamaps/sdk` ### 4. Vue, React и Android - Vue 3: пакет `@evamaps/vue`, документация https://evamaps.ru/docs/vue - React: пакет `@evamaps/react`, документация https://evamaps.ru/docs/react - Android: пакет `ru.evamaps:sdk`, класс `EvaMapView`, документация https://evamaps.ru/docs/android/ . iOS пока нет. --- ## Характеристики SDK и движка - Пакет: `@evamaps/sdk`, IIFE-файл `evamaps.js` - Размер IIFE-сборки: ≈15 КБ gzip, ядро движка ≈21 КБ gzip - Рендерер: собственный 2D движок на Canvas и SVG (не Leaflet, не MapLibre, не WebGL) - Работает без GPU — там, где WebGL-карты недоступны или тормозят - Тайлы: OpenStreetMap, растровые 256 px, темы light / dark / gray - Зумы: 0–19, `zoomSnap: 1` (привязка к целому zoom — чёткие подписи) - Координаты: всегда `[lng, lat]` (порядок GeoJSON), шкала зума как у OSM (тайл 256 px) - Атрибуция: `© OpenStreetMap · © EvaMaps` — видна всегда, не отключается --- ## Возможности **Слои и объекты:** - Marker (метка): цвет, подпись ≤24 символа, Popup (балун), draggable, zIndexOffset, riseOnHover - Polyline (линия), Polygon (многоугольник с дырками), Circle (круг, радиус в метрах) - GeoJSONLayer: Point/MultiPoint/LineString/MultiLineString/Polygon/MultiPolygon/GeometryCollection - ClusterLayer: собственная grid-кластеризация без внешних зависимостей **Поиск адресов и объектов:** - `EvaMaps.geocode()` — подсказки при наборе адреса, `EvaMaps.reverse()` — что находится в точке на карте - В конструкторе — поиск дома или объекта **API карты:** - `create(container, options)` — быстрый старт с тайлами, темой и контролами - `flyTo(center, zoom)`, `panTo(center)`, `setZoom(zoom)`, `zoomIn()`, `zoomOut()` - `fitBounds(bounds, {padding, maxZoom})`, `getBounds()`, `project(lngLat)`, `unproject(point)` - Темы: `light`, `dark`, `gray` (переключаются на лету) - Контролы: ZoomControl (+/−), ScaleControl (линейка), Attribution (атрибуция) **Встраивание:** - Web component `` с Shadow DOM, ленивый старт по IntersectionObserver - iframe с `#фрагментом` (вся карта в ссылке, до 50 меток) или сохранённая по `id` - Кооперативные жесты: Ctrl+колесо для зума, два пальца на тач - postMessage API для управления iframe-картой из родительской страницы - Фигуры: ``, ``, `` как дочерние элементы `` **Конструктор карт:** - До 50 меток, до 20 фигур, до 500 точек на фигуру - Сохранённые карты без аккаунта (правка по секретной ссылке) - Поддерживаемые сайты для вставки: Tilda, WordPress, Битрикс, любой HTML --- ## Тарифы **Загрузка карты** — один запрос инициализации на странице или в приложении, сколько бы карт на ней ни было. Тайлы и прочие запросы не считаются. Месяц календарный, по UTC: новый месяц начинается 1-го числа в 03:00 по Москве. | Тариф | Цена | Загрузок карты в месяц | Домены и приложения | |---|---|---|---| | Бесплатный | 0 ₽, без ключа и регистрации | 5 000 на каждый сайт | любые | | Старт | 199 ₽/мес или 1 999 ₽/год | 100 000 на аккаунт | до 5 доменов, 1 приложение | | Бизнес | 599 ₽/мес или 4 999 ₽/год | 1 000 000 на аккаунт | до 20 доменов, 5 приложений | - Больше 1 000 000 в месяц — по договорённости. - Платный тариф — ключ из кабинета (app.evamaps.ru), привязанный к доменам и приложениям. Лимит общий на аккаунт. - Оплата в рублях через Робокассу, картой или по счёту. Переход на дорогой тариф — сразу, с доплатой за оставшиеся дни; на дешёвый — со следующего периода. - При превышении лимита карта **не отключается**: рядом с атрибуцией появляется уведомление, владельцу аккаунта приходит письмо на 80% и 100%. - Без ключа лимит считается по сайтам, где карта подключена через SDK или ``. С ключом считается всё на аккаунте. - Атрибуция остаётся на карте при любом тарифе. --- ## Ограничения и чего пока нет - **Построения маршрутов, изохрон, матриц расстояний** — не в планах на этот период - **Retina-тайлов** — опция `retina` в API зарезервирована, поведение пока не изменяет - **Static API** (картинка карты без JavaScript) — не реализован - **Подключения в Leaflet, MapLibre, OpenLayers, QGIS** — тайлы работают только через SDK, `` и iframe EvaMaps --- ## Политика использования данных - Cookies и идентификаторы посетителей: **отсутствуют** во встраиваниях (SDK, iframe, ``) - IP в логах: усечён (последний октет обнулён); хранение — 14 дней - Хранится в логах: только хост из Referer/Origin (без пути и параметров URL) - Инфраструктура: только в РФ, без Cloudflare и зарубежных CDN - Коммерческое использование: разрешено на любом тарифе, включая CRM, трекинг, закрытые системы --- ## Границы и законодательство Карты соответствуют законодательству РФ о картографии (закон 2023 года, приказ Росреестра П/0559). Данные включают РФ, СНГ и соседние страны. Другие варианты отображения границ не поддерживаются. --- ## Сравнение с ближайшими альтернативами | Параметр | EvaMaps | Яндекс JS API | 2ГИС MapGL | |---|---|---|---| | Закрытые системы, трекинг | ✅ разрешены на любом тарифе | ❌ нужна лицензия от 195 000 ₽/год | через калькулятор | | Cookies во встраивании | ❌ нет | ✅ есть | ✅ есть | | Серверы | РФ | РФ | РФ | | Движок | Canvas/SVG, без GPU | WebGL (v3) | WebGL | | Размер SDK | ~15 КБ gzip | тяжёлый загрузчик | ~285 КБ gzip (MapLibre) | | Границы по закону РФ | ✅ | ✅ | ✅ | | Бесплатный тариф | 5 000 загрузок/мес на сайт, без ключа | 500 запросов/сутки, только открытые некоммерч. | демо-ключ | --- ## Альтернатива Leaflet и MapLibre GL JS Leaflet и MapLibre — клиентские библиотеки без тайлов: подложку ищут отдельно. В РФ это проблема: `tile.openstreetmap.org` запрещено использовать в продакшене, зарубежные сервисы тайлов (MapTiler, Stadia, Mapbox) из РФ почти не оплатить, Яндекс подложку отдельно не продаёт. EvaMaps заменяет связку «библиотека + чужие тайлы» целиком: свой движок и тайлы по РФ и СНГ одной поставкой. Тайлы EvaMaps в сам Leaflet или MapLibre не подключаются — только через SDK, `` и iframe EvaMaps. | | EvaMaps | Leaflet 1.9 | MapLibre GL JS | |---|---|---|---| | Размер | ≈15 КБ gzip (SDK с движком) | ≈43 КБ gzip | ≈285 КБ gzip | | Рендер | Canvas 2D и SVG | DOM и SVG/Canvas | WebGL | | Без GPU | ✅ | ✅ | ❌ | | Тайлы в комплекте | ✅ РФ и СНГ | ❌ | ❌ | | Координаты | `[lng, lat]` | `[lat, lng]` | `[lng, lat]` | | Кластеры, переключатель слоёв | встроены | плагины | своими слоями | | Плагины | нет | огромная экосистема | много | | Векторные стили, вращение, 3D | нет | нет | ✅ | **Переход с Leaflet.** Имена методов как у Leaflet: `setView`, `flyTo`, `fitBounds`, `panTo`, `marker(...).addTo(map)`, `on`/`off`. Соответствия: `L.map` → `EvaMaps.create`, `L.marker` → `EvaMaps.marker`, `bindPopup(html)` → `setPopup(EvaMaps.popup().setText(text))` (HTML-строки не принимаются), `L.geoJSON` → `EvaMaps.geoJSON`, `Leaflet.markercluster` → `EvaMaps.cluster`, `L.control.layers` → `EvaMaps.layersControl`, `map.remove()` → `map.destroy()`. Главное отличие — порядок координат: `[lat, lng]` у Leaflet нужно развернуть в `[lng, lat]`. Полная таблица: https://evamaps.ru/docs/from-leaflet **Вместо MapLibre** EvaMaps подходит, когда нужна лёгкая карта с метками, работающая без видеокарты (офисные ПК, виртуальные машины, старые ноутбуки). Если нужны векторные стили, вращение и 3D — остаётся MapLibre. --- ## Технические документы - Быстрый старт: https://evamaps.ru/docs/ - Справочник SDK: https://evamaps.ru/docs/sdk/ - Web component ``: https://evamaps.ru/docs/web-component - Vue: https://evamaps.ru/docs/vue - React: https://evamaps.ru/docs/react - Android: https://evamaps.ru/docs/android/ - Встраивание без кода: https://evamaps.ru/docs/no-code - Атрибуция: https://evamaps.ru/docs/attribution - Ограничения: https://evamaps.ru/docs/limitations - Тарифы: https://evamaps.ru/pricing - Сравнение с альтернативами: https://evamaps.ru/docs/compare - Переход с Leaflet: https://evamaps.ru/docs/from-leaflet - Условия использования: https://evamaps.ru/legal/terms - Политика конфиденциальности: https://evamaps.ru/legal/privacy - Что нового (changelog): https://evamaps.ru/changelog