Инструкция по установке
Обновлено 26 декабря 2022
Видеоинструкция по интеграции VPS SDK в проект для Android:
Запуск Example Project
Для запуска примера приложения необходим смартфон с поддержкой ARCore.
- Клонировать репозиторий по ссылке
https://github.com/naviar-io/naviar-sdk-android.git
- Открыть проект в Android Studio(также можно клонировать проект при помощи Android Studio: File → New → Project From Version Control и в поле URL указать ссылку из пункта 1)
- Дождаться окончания синхронизации проекта и запустить проект
По умолчанию приложение запускается для работы с реальными данными и с использованием GPS. Чтобы проверить работу приложения на фото надо выполнить следующие шаги:
- После запуска приложения и предоставления всех разрешений, нужно сделать долгое нажатие по экрану, появится следующее меню
- Измените настройки на следующие:
- Autofocus - выбран
- GPS - не выбран
- Нажмите кнопку
APPLY
- В модуле sample найдите папку img и откройте любое изображение с префиксом
polytech
. - Наведите камеру телефона на изображение и дождитесь когда серый кружочек в правом верхнем углу станет зеленым.
Интеграция в собственный проект
- В build.gradle модуля добавить зависимость. Для этого в блок
dependencies
добавить следующую строчку
dependencies {
implementation("io.naviar:vps-sdk:0.7.0")
...
}
- Выполнить синхронизацию проекта с gradle.
- Добавить
VpsArFragment
на экран. Это можно сделать в xml или через код
<androidx.fragment.app.FragmentContainerView
android:id="@+id/vFragmentContainer"
android:name="io.naviar.vps_sdk.ui.VpsArFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
supportFragmentManager.beginTransaction()
.replace(R.id.vFragmentContainer, VpsArFragment())
.commit()
- Создать конфигурацию для
VpsService
. Для этого можно вызвать
// конфигурация для локализации внутри зданий
val vpsConfig = VpsConfig.getIndoorConfig(<locationIds>)
// или конфигурации для локализации вне зданий
val vpsConfig = VpsConfig.getOutdoorConfig(<locationIds>)
// или создать свою конфигурацию
val vpsConfig = VpsConfig(<locationIds>)
Название параметра | Описание | Значение по умолчанию |
---|---|---|
locationIds | Идентификатор(ы) локации(й) для локализации. | не задано |
intervalLocalizationMS | Интервал между локализациями. Задается в миллисекундах. | 2500 |
useGps | Использовать GPS при локализации или нет. | false |
localizationType | Способ локализации. Можно установить локализацию по фото(Photo) или при помощи нейронных сетей(MobileVps). | MobileVps |
failsCountToResetSession | Количество неудачных попыток для сброса текущей сессии VPS (количество попыток исправить положение с учетом результата предыдущей локализации) | 5 |
updateWorldDurationMS | Продолжительность обновления позиции модели между локализациями. Задается в миллисекундах. | 500 |
updateWorldDistanceLimit | Если разница позиций моделей между двумя локализациями будет больше заданного значения, то позиция модели будет установлена немедленно, а иначе будет плавное перемещение модели до нужной позиции. | 2f |
updateWorldAngleLimit | Если разница поворота моделей между двумя локализациями будет больше заданного значения, то поворот модели будет установлен немедленно, а иначе будет плавный поворот модели до нужного значения. | 10f |
После установить конфигурацию в VpsService
val vpsService = vpsArFragment.vpsService
vpsService.setVpsConfig(vpsConfig)
Запустить VpsService
vpsService.startVpsService()