iOS SDK
iOS SDK позволяет добавить карту 2ГИС в ваше iOS-приложение. С помощью SDK можно отобразить карту на экране, получать информацию об объектах карты, строить маршруты, использовать навигатор и т. д.
Примеры использования SDK см. в разделе Примеры. Описание всех классов и методов см. в разделе Справочник API.
Картографические данные поддерживают стандарты OGC.
Версии SDK
Пакеты iOS SDK доступны в двух версиях:
- Full — полная версия, которая позволяет:
- Добавлять карту в приложение и управлять ей: добавлять маркеры и геометрические фигуры, управлять движением камеры, отображать слои (например, пробки), работать со стилями карты и т. д.
- Искать объекты в справочнике: организации, здания, места и другие.
- Работать с навигатором в приложении в трёх режимах: свободная навигация, ведение по маршруту и симуляция ведения.
- Строить оптимальные маршруты на карте, в том числе внутри зданий.
- Использовать офлайн-данные.
- Map — облегчённая версия, которая позволяет:
- Добавлять карту в приложение и управлять ей: добавлять маркеры и геометрические фигуры, управлять движением камеры, отображать слои (например, пробки), работать со стилями карты и т. д.
- Искать объекты в справочнике: организации, здания, места и другие.
Важно
Использовать совместно Full и Map нельзя: это приведёт к ошибке сборки.
Получение ключей доступа
Чтобы подключиться к серверам 2ГИС, получать геоданные и включить возможности SDK, получите файл ключа доступа:
-
Чтобы получить файл ключа
dgissdk.key, заполните форму на dev.2gis.ru и укажите:- ID приложения (App ID), для которого будет использоваться ключ. Убедитесь, что App ID соответствует требованиям.
- Список API, к которым требуется доступ. Зависит от необходимых функциональностей и версии SDK. См. подробнее в разделе API для работы SDK.
-
Убедитесь, что выполнены требования к ключу.
После получения ключа инициализируйте SDK.
API для работы SDK
В зависимости от нужных функциональностей, для работы SDK требуются ключи доступа к API карт, поиска и навигации. Доступные возможности зависят от версии SDK: Full или Map.
При использовании ключа оплачивается только доступ к используемым API, в зависимости от количества отправленных запросов (и в некоторых случаях — полученных ответов). Вы можете просматривать статистику распределения запросов к API в личном кабинете Менеджер Платформы.
Карта (для Full и Map)
Подробнее о доступных возможностях см. в инструкции Карта.
Функциональность | API |
|---|---|
| Создание карты в приложении (метод makeMapFactory()) |
|
| Отображение пробок на карте (класс TrafficSource) | Regions API |
Справочник (для Full и Map)
Подробнее о доступных возможностях см. в инструкции Справочник.
Функциональность | API |
|---|---|
| Создание поискового движка (класс SearchManager) | Regions API |
| Получение результатов поиска (метод SearchManager.search()) | Получение некоторой информации об объектах в доступно только при дополнительной настройке ключа за отдельную плату: см. раздел Структура данных объекта. |
| Поиск объектов в справочнике по идентификатору (метод SearchManager.searchById()) | |
| Формирование поисковых подсказок (метод SearchManager.suggest()) | Suggest API |
Маршруты (только для Full)
Подробнее о доступных возможностях см. в инструкции Маршруты.
Функциональность | API |
|---|---|
| Поиск оптимального маршрута с учётом пробок (класс TrafficRouter) |
|
| Отображение маршрутов на карте (класс RouteEditorSource) |
|
Навигация (только для Full)
Подробнее о доступных возможностях см. в инструкции Навигация.
Функциональность | API |
|---|---|
| Запуск навигатора (метод NavigationManager.start()): |
|
| Поиск альтернативных маршрутов (класс AlternativeRouteSelector) |
|
| Отображение дорожных событий (класс RoadEventSource) | Regions API |
Требования
Требования к ключам
- Для одного приложения вы можете инициализировать SDK только один раз. При этом для каждого приложения используется только один ключ. Отдельные ключи требуются в следующих случаях:
- Если приложение доступно для разных операционных систем.
- Если у приложения есть несколько вариантов для одной ОС (например, приложение для водителя и приложение для пассажира).
- Если используются разные версии SDK (Full и Map).
- App ID должен соответствовать значению
app_idв файле с ключом. - Изменение файла ключа во время работы приложения не поддерживается. Так как выбор файла ключа происходит при инициализации SDK, вы можете задать им разные названия (по умолчанию используется
dgissdk.key): для этого передайте ключ с другим названием через параметрkeySourceвDGis.Container.
Требования к App ID
App ID может содержать буквы латинского алфавита (A–Z, a–z), цифры (0–9), точки (.) для разделения сегментов и дефисы (-).
Требования к устройствам
- Xcode 14.
- iOS 16 и выше / iPadOS 16 и выше (это обусловлено использованием SwiftUI в проекте).
Установка
Swift Package Manager
Чтобы установить iOS SDK через Swift Package Manager, добавьте в проект пакетную зависимость. См. инструкции по установке Swift-пакетов в документации Apple.
Для подключения SDK укажите URL в зависимости от версии:
https://github.com/2gis/mobile-sdk-full-swift-package— для версии SDK Full.https://github.com/2gis/mobile-sdk-map-swift-package— для версии SDK Map.
CocoaPods
Чтобы установить iOS SDK через CocoaPods, добавьте зависимость DGisMobileSDK.
Используйте версионирование из Swift Package Manager, при этом добавьте постфикс -full или -map в зависимости от необходимой версии SDK.
Спецификацию пода вы можете посмотреть по одному из следующих URL:
https://github.com/2gis/mobile-sdk-full-swift-package/blob/master/DGisMobileSDK.podspec— для версии SDK Full.https://github.com/2gis/mobile-sdk-map-swift-package/blob/master/DGisMobileSDK.podspec— для версии SDK Map.
Бинарный артефакт
Вы можете загрузить фреймворки напрямую, не используя пакетные менеджеры. Для этого обратитесь к репозиторию, содержащему спецификацию пакетов для CocoaPods или Swift Package Manager:
https://github.com/2gis/mobile-sdk-full-swift-package— для версии SDK Full.https://github.com/2gis/mobile-sdk-map-swift-package— для версии SDK Map.
В файле Package.swift будет указан URL, ведущий на загрузку архива с SDK по прямой ссылке. Для навигации по версиям используйте теги git.
Демонстрационный проект
Демонстрационное приложение с исходным кодом см. в GitHub-репозитории.