[Taiga #21] Режим навигатора: динамическое отдаление камеры в зависимости от скорости #2

Closed
opened 2026-05-19 05:03:42 +00:00 by Grigo · 1 comment
Owner

Linked Taiga story: #21

Suggested branch:
feature/taiga-21-rezhim-navigatora-dinamicheskoe-otdalenie-kamery-v-zavisimos

Project type: work
AI tags: work, ais, android, navigation, camera, speed-dependent, map-view, feature

Description

Реализовать режим навигатора, в котором камера следит за собственным судном и автоматически отдаляется в зависимости от скорости движения. Чем выше скорость - тем больше дальность обзора впереди лежащих объектов. Функционал должен взаимодействовать с существующей системой отслеживания судна и данными о скорости из NMEAController.

Taiga: https://tasks.grigowashere.ru/project//us/21

Acceptance criteria

  • Камера автоматически следит за собственным судном (центр экрана)
  • Уровень зума камеры изменяется в зависимости от скорости судна
  • На скорости 0 узлов - максимальное приближение (стандартный зум)
  • На максимальной скорости - максимальное отдаление (расширенный обзор)
  • Переход между уровнями зума плавный, без рывков
  • Режим отключается при переходе в другой режим навигации
  • Функция работает корректно для обоих типов карт (YandexMap и MapForge)
  • В настройках есть опция включения/отключения режима навигатора

Code notes

  • В Vessel.java уже есть поле speed - использовать его как источник данных
  • NMEAController управляет получением данных о скорости из разных источников - нужна синхронизация
  • MapInterface.java - абстрактный класс с методами centerOnVessel и zoom - проверить текущий API
  • YandexMapImpl и MapForgeImpl - две реализации карт, обе должны поддерживать режим
  • SettingsActivity уже имеет паттерны для добавления новых настроек (см. режимы данных)
  • AppController - главная точка интеграции, там синхронизируются все компоненты
  • Вероятно, понадобится Timer или Handler для регулярного обновления зума при изменении скорости
  • Проверить, есть ли уже механизм для отслеживания изменений скорости в CoordinatesDockWidget

Questions

  • Какой диапазон скоростей считается актуальным? (макс скорость судна в узлах)
  • Какой диапазон зума поддерживают оба типа карт (Яндекс и MapForge)?
  • Нужно ли сохранять состояние режима навигатора между запусками приложения?
  • Должна ли кнопка активации режима быть в главном меню или в отдельной панели управления?
  • Нужна ли опция 'фиксированный угол камеры вперед' (камера повернута в направлении курса судна)?
  • Какое время анимации переходов зума предпочтительно?
  • Нужно ли обрабатывать ситуацию потери GPS сигнала в режиме навигатора?
Linked Taiga story: #21 Suggested branch: `feature/taiga-21-rezhim-navigatora-dinamicheskoe-otdalenie-kamery-v-zavisimos` Project type: `work` AI tags: work, ais, android, navigation, camera, speed-dependent, map-view, feature ## Description Реализовать режим навигатора, в котором камера следит за собственным судном и автоматически отдаляется в зависимости от скорости движения. Чем выше скорость - тем больше дальность обзора впереди лежащих объектов. Функционал должен взаимодействовать с существующей системой отслеживания судна и данными о скорости из NMEAController. Taiga: https://tasks.grigowashere.ru/project//us/21 ## Acceptance criteria - Камера автоматически следит за собственным судном (центр экрана) - Уровень зума камеры изменяется в зависимости от скорости судна - На скорости 0 узлов - максимальное приближение (стандартный зум) - На максимальной скорости - максимальное отдаление (расширенный обзор) - Переход между уровнями зума плавный, без рывков - Режим отключается при переходе в другой режим навигации - Функция работает корректно для обоих типов карт (YandexMap и MapForge) - В настройках есть опция включения/отключения режима навигатора ## Code notes - В Vessel.java уже есть поле speed - использовать его как источник данных - NMEAController управляет получением данных о скорости из разных источников - нужна синхронизация - MapInterface.java - абстрактный класс с методами centerOnVessel и zoom - проверить текущий API - YandexMapImpl и MapForgeImpl - две реализации карт, обе должны поддерживать режим - SettingsActivity уже имеет паттерны для добавления новых настроек (см. режимы данных) - AppController - главная точка интеграции, там синхронизируются все компоненты - Вероятно, понадобится Timer или Handler для регулярного обновления зума при изменении скорости - Проверить, есть ли уже механизм для отслеживания изменений скорости в CoordinatesDockWidget ## Questions - Какой диапазон скоростей считается актуальным? (макс скорость судна в узлах) - Какой диапазон зума поддерживают оба типа карт (Яндекс и MapForge)? - Нужно ли сохранять состояние режима навигатора между запусками приложения? - Должна ли кнопка активации режима быть в главном меню или в отдельной панели управления? - Нужна ли опция 'фиксированный угол камеры вперед' (камера повернута в направлении курса судна)? - Какое время анимации переходов зума предпочтительно? - Нужно ли обрабатывать ситуацию потери GPS сигнала в режиме навигатора?
Grigo added the workaisandroidnavigationcameraspeed-dependentmap-viewfeature labels 2026-05-19 05:03:44 +00:00
Author
Owner

Добавлен

Добавлен
Grigo closed this issue 2026-05-20 05:50:58 +00:00
Sign in to join this conversation.