Начало работы
Начало работы
Сначала нужно обратиться в техническую поддержку 2ГИС для получения нового ключа. Обязательно нужно указать appId
приложения, для которого будет создан ключ. Полученный файл ключа dgissdk.key
нужно добавить assets
.
Для работы с SDK нужно вызвать метод initialize()
объекта DGis, указав контекст приложения.
class Application : Application() {
lateinit var sdkContext: Context
override fun onCreate() {
super.onCreate()
sdkContext = DGis.initialize(
this
)
}
}
Обратите внимание, что нельзя создавать более одного экземпляра Context.
Дополнительно можно указать настройки журналирования (LogOptions) и настройки HTTP-клиента (HttpOptions), такие как кеширование. С помощью LogOptions также можно настроить отправку логов в Firebase Crashlytics
// Настройки журналирования
val logOptions = LogOptions(
LogLevel.VERBOSE
)
// Настройки HTTP-клиента
val httpOptions = HttpOptions(
useCache = false
)
// Согласие на сбор и отправку персональных данных
val dataCollectConsent = PersonalDataCollectionConsent.GRANTED
sdkContext = DGis.initialize(
appContext = this,
dataCollectConsent = dataCollectConsent,
logOptions = logOptions,
httpOptions = httpOptions
)
Отправка логов в Firebase Crashlytics
Объект класса LogOptions, кроме настройки уровня логирования, также позволяет использовать собственный приемник логов, с помощью параметра customSink.
LogSink – интерфейс с единственным методом write
, который необходимо реализовать.
Реализация для отправки сообщений лога в Firebase Crashlytics может выглядеть так:
class FirebaseLogSink : LogSink {
override fun write(message: LogMessage) {
FirebaseCrashlytics.getInstance().log(message.text)
}
}
Далее, экземпляр этого класса передается в метод initialize()
объекта DGis:
sdkContext = DGis.initialize(
...
logOptions = LogOptions(
...
customSink = FirebaseLogSink()
)
...
)
Vendor Config
Для переопределения некоторых настроек работы SDK используется файл в формате VendorConfig, который передается при инициализации SDK.
Существует несколько способов создать экземпляр класса VendorConfig
:
- VendorConfigFromAsset - файл необходимо расположить в каталоге assets исходного кода приложения и указать имя файла в конструкторе.
- VendorConfigFromFile – файл необходимо расположить на файловой системе устройства и указать абсолютный путь до него.
- VendorConfigFromString – в конструктор необходимо передать строку с содержимым файла формата json.
Созданный экземпляр VendorConfig передается в метод DGis.initialize() параметром vendorConfig
Работа с офлайн-данными
Мобильный SDK (версия Full) позволяет работать с данными карты, справочника и навигатора офлайн из предзагруженных пакетов. Это может быть полезно в условиях плохой связи или при её полном отсутствии.
Чтобы настроить работу в режиме офлайн:
-
Убедитесь, что ваш ключ доступа содержит необходимые права для работы с офлайн-данными. Вы можете запросить права на офлайн-данные всех компонентов (карта, справочник, построение маршрутов) или выбрать только необходимые.
-
Скачайте файлы с данными для территорий, где необходима офлайн-работа приложения, через TerritoryManager.
-
Настройте компоненты SDK для работы с предзагруженными данными:
- Карта: создайте источник данных и укажите нужный режим работы.
- Справочник: используйте нужный метод для создания справочника объектов.
- Построение маршрутов: по умолчанию настроен гибридный режим. Подробнее см. документацию о маршрутах.