Общая архитектура NaviKit SDK

NaviKit SDK предоставляет широкий функционал и содержит большое количество классов и компонентов. Для того, чтобы упростить процесс интеграции навигационных сценариев в ваше приложение, важно понимать общую архитектуру NaviKit SDK.

Ниже рассмотрены основные сущности, входящие в состав NaviKit SDK, и их зависимости друг от друга.

Диаграмма

На диаграмме изображены основные компоненты из NaviKit SDK.

NaviKit SDK entities diagram

Данные сущности можно разделить на две группы: full MapKit SDK и более общая группа NaviKit SDK.

Сущности MapKit SDK

NaviKit SDK включает в себя весь функционал full-версии MapKit SDK. Поэтому на диаграмме сущности Map и Directions находятся в отдельной группе MapKit SDK full.

  • Map - отвечает за API работы непосредственно с картой, ее отображение, настройку и стилизацию.

  • Directions - включает в себя функционал маршрутизации, построения маршрутов, который представляется в full-версии MapKit SDK.

NaviKit SDK является надстройкой над full-версией MapKit SDK, предоставляя доступ к дополнительным компонентам:

  • Navigation - компонент инкапсулирует логику построения маршрутов, а также информацию о текущем состоянии ведения. Навигация не зависит от компонента карты и не содержит логику отображении объектов.

  • Road Events Layer - представляет собой слой дорожных событий, который отвечает за отображение отдельного слоя на карте с дорожными событиями на маршруте. Слой дорожных событий зависит от API карты, потому что отображает на ней дорожные события.

  • Navigation Layer - навигационный слой позволяет связать сущности карты, навигации и дорожные события. С помощью него на карте рисуются маршруты, маневры и контрольные точки.