Описание API карт

Возможности Navitel Webmap API

JS API карт Navitel представляет собой набор JavaScript-компонентов, предназначенных для доступа к картографическому материалу веб-страницах.

Возможности:

  • отображение карты;
  • полнотекстовый поиск;
  • поиск ближайших объектов;
  • построение маршрута с указанием ТС.
Быстрый старт

1. Получите API-ключ.

Для работы с JS API карт Navitel требуется действующий API ключ. Ключ можно получить, обратившись по адресу ap@navitel.ru.

2. Подключите API и библиотеки Leaflet.

Для подключения библиотек Leaflet и API добавьте в заголовок HTML-страницы строки следующего вида:

<head> <link rel="stylesheet" href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css" /> <script src="https://unpkg.com/leaflet@1.6.0/dist/leaflet-src.js"></script> <script src="http://webmapapi.navitel.ru/index.umd.js"></script> </head>

3. Создайте контейнер для карты.

Для создания контейнера, в котором будет размещена карта, добавьте любой HTML-элемент блочного типа. Карта заполнит этот элемент полностью.

<body> <div id="map"></div> </body>

4.Создайте карту.

Для создания карты с тайлами добавьте следующий код в секцию body:

<script> const nmapi = navitel.createWebMapApi('6e982defee3eb78ab24890068d57fff04b4f7ae5', { locale: navitel.LocaleCode.ru_RU }) const map = L.map('map', { center: [55.75, 37.70], zoom: 9, }) const navitelTile = nmapi.extension.leaflet.createTileLayer({ locale: navitel.LocaleCode.ru_RU }) navitelTile.addTo(map) </script>

В данном примере используется два параметра для карты:

  • center: координаты центра карты в формате [широта,долгота];
  • zoom: коэффициент масштабирования в диапазоне от 3 до 18 включительно, где 3 – минимальный масштаб, 18 – максимальный.
Руководство
Базовые типы данных
LonLat

Географическая точка с определенной широтой и долготой.

Свойство Тип Описание
latitude Number Широта в градусах, интервал допустимых значений [-90, 90]
longitude Number Долгота в градусах, интервал допустимых значений [-180, 180]
Viewport

Описывает прямоугольную область на карте в пиксельных координатах.

Свойство Тип Описание
widthPx Number Ширина в пикселях
heightPx Number Высота в пикселях
zoomLevel Number Коэффициент масштабирования в диапазоне от 3 до 18 включительно, где 3 – минимальный масштаб, 18 – максимальный
centerCoordinates LatLng Координаты центра карты в формате [широта, долгота]
GeoLine

Полилиния из последовательности точек на карте.

Свойство Тип Описание
points LonLat[] Последовательность точек
Карта

В данном разделе приводится описание API карт, который используется для создания и управления картой на странице.

createWebMapApi
Конструктор Описание
createWebMapApi( apikey, ) Создает объект, с которым будет дальнейшее обращение к API

Параметры

Параметр Тип Значение по умолчанию Описание
locale String Язык браузера Указывает код используемого языка для карты

Пример использования

const nmapi = navitel.createWebMapApi('6e982defee3eb78ab24890068d57fff04b4f7ae5', { locale: navitel.LocaleCode.ru_RU })
map
Конструктор Описание
L.map( id, options?) Инициализирует карту в DOM-узле <div> элемента с указанным id с необязательным набором опций, которые описаны ниже.

Параметры

Подробное описание возможных параметров данного метода приведено в описании API используемой библиотеки Leaflet 1.6.0

Пример использования

Инициализация карты в элементе div с id "map", с указанием координат центра карты и коэффициента масштабирования.

const map = L.map('map', { center: [55.75, 37.70], zoom: 9, })
createTileLayer
Конструктор Описание
createTileLayer() Создание слоя с тайлами.

Параметры

Параметр Тип Значение по умолчанию Описание
locale String Язык браузера Указывает код используемого языка для тайлов

Пример использования

const navitelTile = nmapi.extension.leaflet.createTileLayer({ locale: navitel.LocaleCode.es_ES })
Маршрут

API позволяет автоматически строить маршрут между заданными точками, получать информацию о протяженности маршрута и ориентировочном времени прохождения маршрута. Доступны следующие виды транспортных средств, для которых прокладывается маршрут:

  • Пешеход
  • Велосипедист
  • Рядовой автомобиль
  • Такси
  • Автобус
  • Служба экстренной помощи
  • Доставка
  • Грузовик

Маршрут можно строить по двум точкам и более, с учетом пробок или без.

routeId
Конструктор Описание
routeId() Генерация ключа маршрута

Параметры

Параметр Тип Значение по умолчанию Описание
objectType Integer   Указывает тип ТС, для которого прокладывается маршрут. Возможные значения:
INVALID = 0;
PEDESTRIAN = 1;
BICYCLE = 2;
CAR = 3;
TAXI = 4;
BUS = 5;
EMERGENCY = 6;
DELIVERY = 7;
TRUCK = 8;
jams Boolean False Учитывает пробки при прокладке маршрута.
waypointsList LonLat[]   Указывает массив точек для построения маршрута.

Пример использования

const routeId = await nmapi.route.routeId({ objectType: nmapi.route.ObjectType.BUS, waypointsList: [ [59.938806, 30.314278], // St. Petersburg [55.755773, 37.617761], // Moscow [55.028739, 82.906928], // Novosibirsk ] })
routeMetadata
Конструктор Описание Возвращает
routeMetadata() Получение метаданных маршрута length_meters - протяженность маршрута в метрах
duration_seconds - ориентировочное время прохождения маршрута
либо ошибку с кодом
Код ошибки Описание
NO_CODE Код не задан
INVALID_ROUTE_ID Неправильный идентификатор маршрута
BAD_REQUEST Неправильно сформированный запрос
UNKNOWN_API_KEY Неизвестный API ключ
EXPIRED_API_KEY Просроченный API ключ
OVER_LIMIT Превышено допустимое количество запросов
ACCESS_DENIED Операция запрещена для указанного API ключа
INTERNAL_ERROR Прочие ошибки

Пример использования

const meta = await nmapi.route.routeMetadata({ routeId })
routeGeometry
Конструктор Описание Возвращает
routeGeometry(, viewport) Получение геометрии маршрута GeoLine[] lines - геометрию маршрута в виде последовательного набора полилиний в пространстве
либо ошибку с кодом
Код ошибки Описание
NO_CODE Код не задан
INVALID_ROUTE_ID Неправильный идентификатор маршрута
INVALID_VIEWPORT_WIDTH Неправильная ширина области видимости
INVALID_VIEWPORT_HEIGHT Неправильная высота области видимости
INVALID_VIEWPORT_ZOOM Неправильный масштаб, указанный в области видимости
INVALID_VIEWPORT_CENTER Неправильная центральная точка, указанная в области видимости
BAD_REQUEST Неправильно сформированный запрос
UNKNOWN_API_KEY Неизвестный API ключ
EXPIRED_API_KEY Просроченный API ключ
OVER_LIMIT Превышено допустимое количество запросов
ACCESS_DENIED Операция запрещена для указанного API ключа
INTERNAL_ERROR Прочие ошибки

Параметры

Параметр Тип Описание
viewport viewport Задает область, для которой будет получена геометрия маршрута, геометрия будет генерализована с учетом масштаба. Если параметр не задан, будет получена геометрия всего маршрута.

Пример использования

const geom = await nmapi.route.routeGeometry({ routeId, viewport: { widthPx: 640, heightPx: 480, zoomLevel: 9, centerCoordinates: { latitude: 55.75, longitude: 37.70, }, }, })