Начало работы | Mobile SDK | 2GIS Documentation
iOS SDK

Начало работы

Сначала нужно обратиться в техническую поддержку 2ГИС для получения нового ключа. Обязательно нужно указать appId приложения, для которого будет создан ключ.

Для работы с SDK нужно создать специальный объект Container, который будет хранить все сущности, связанные с картой.

Чтобы его создать, нужно указать путь до файла ключа через объект структуры ApiKeyOptions. При указании ApiKeyOptions.default файл должен быть добавлен в корень приложения.

// Файл ключа для доступа к сервисам.
let apiKeyOptions = ApiKeyOptions(apiKeyFile: File(path: "Path to key info file"))

// Создание контейнера для доступа к возможностям SDK.
let sdk = DGis.Container(apiKeyOptions: apiKeyOptions)

Обратите внимание, DGis.Container может быть создан только в единственном экземпляре.

Дополнительно можно указать настройки журналирования (LogOptions) и настройки HTTP-клиента (HTTPOptions), такие как время ожидания ответа и кеширование.

// Настройки журналирования.
let logOptions = LogOptions(osLogLevel: .info)

// Настройки HTTP-клиента.
let httpOptions = HTTPOptions.default

// Сервисы геопозиционирования.
let positioningServices: IPositioningServicesFactory = CustomPositioningServicesFactory()

// Настройки сбора анонимной статистики использования.
let dataCollectionOptions = DataCollectionOptions(dataCollectionStatus: .agree)

// Создание контейнера.
let sdk = DGis.Container(
	apiKeyOptions: apiKeyOptions,
	logOptions: logOptions,
	httpOptions: httpOptions,
	positioningServices: positioningServices,
	dataCollectionOptions: dataCollectionOptions
)

Для переопределения некоторых настроек работы SDK используется файл в формате VendorConfig, который передается при инициализации контейнера SDK.

Файл необходимо добавить в бандл при сборке приложения и создать экземпляр класса File. Для файла, добавленного в корень бандла, и имеющего имя vendor-config.json код будет выглядеть так:

let vendorConfigFile = Bundle.main.path(forResource: "vendor-config", ofType: "jsonx").map { File(path: $0) }

Далее, эту переменную необходимо передать параметром vendorConfigFile при инициализации Container:

let sdk = DGis.Container(vendorConfigFile: vendorConfigFile)

Мобильный SDK (версия Full) позволяет работать с данными карты, справочника и навигатора офлайн из предзагруженных пакетов. Это может быть полезно в условиях плохой связи или при её полном отсутствии.

Чтобы настроить работу в режиме офлайн:

  1. Убедитесь, что ваш ключ доступа содержит необходимые права для работы с офлайн-данными. Вы можете запросить права на офлайн-данные всех компонентов (карта, справочник, построение маршрутов) или выбрать только необходимые.

  2. Скачайте файлы с данными для территорий, где необходима офлайн-работа приложения, через TerritoryManager.

    См. пример кода для загрузки территорий.

  3. Настройте компоненты SDK для работы с предзагруженными данными: