Files
wiki/tasks/enduro-trails/BRD_SATELLITE_MODE.md
2026-05-31 14:10:15 +03:00

8.6 KiB
Raw Blame History

BRD: Режим спутниковой карты (Схема / Спутник)

Переключатель между векторной картой и спутниковым видом (как в Google Maps / Яндекс.Картах)

Статус: Analysis (ожидает работы Analyst)
Приоритет: Medium
Фаза: 5.5 (после terrain)
Инициатор: Слава
Дата создания: 2026-05-31


Контекст

Сейчас Enduro Trails использует полностью векторную карту на базе MapLibre GL JS с кастомными стилями:

  • style.json (светлая тема)
  • style-dark.json (тёмная тема)

Рельеф (terrain) реализован в фазе 5.4: гипсометрия + hillshade (SRTM 30м).

Пользователь хочет иметь возможность переключаться между схемой и спутником, как на популярных картах. Это особенно полезно для:

  • Визуальной оценки рельефа и ландшафта перед поездкой
  • Понимания, как выглядит местность «вживую»
  • Планирования маршрутов в сложных районах

Цель

Реализовать переключатель режимов отображения карты:

  • Схема — текущая векторная карта (с дорогами, POI, terrain)
  • Спутник — растровый спутниковый слой (с возможностью гибридного отображения)

Требования (MVP)

  1. Переключатель режимов в UI (toolbar, рядом с кнопкой 🏔️ рельефа)
  2. Сохранение выбора пользователя в localStorage
  3. Корректная работа переключения вместе с terrain (гипосометрия + hillshade)
  4. Производительность: тайлы должны загружаться быстро, без деградации UX
  5. Поддержка мобильных устройств

Исследовательские вопросы (для Analyst)

Analyst должен провести исследование и дать рекомендации по следующим направлениям:

1. Источники спутниковых тайлов

Источник Покрытие РФ Качество Лицензия/Стоимость Примечание
ESRI World Imagery Хорошее Хорошее Free (attribution) Самый популярный вариант для MapLibre
Яндекс.Спутник Отличное (РФ) Отличное ? Нужно проверить API/тайлы
Maxar / DigitalGlobe Отличное Высокое Платно Дорого для open-source проекта
Sentinel Hub Среднее Среднее Free tier Низкое разрешение (~10м)
Mapbox Satellite Хорошее Хорошее Платно Требует Mapbox токен

Вопросы для Analyst:

  • Какой источник оптимален для ЦФО + Чувашия по соотношению качество/скорость/стоимость?
  • Есть ли ограничения на использование ESRI World Imagery в коммерческих/открытых проектах?
  • Можно ли использовать Яндекс.Спутник без токена (как тайлы)?

2. Архитектура реализации

Вариант A: Отдельный satellite style

  • Полностью новый style-satellite.json
  • Плюсы: чистый контроль над слоями
  • Минусы: дублирование стилей, сложнее поддерживать terrain

Вариант B: Raster overlay поверх текущего стиля

  • Добавление raster source + layer в текущий стиль
  • Плюсы: минимальные изменения, terrain работает «из коробки»
  • Минусы: z-order слоёв нужно контролировать

Вариант C: Hybrid (спутник + дороги/подписи)

  • Спутник как base layer
  • Векторные дороги/подписи поверх с полупрозрачностью
  • Плюсы: лучший UX (понимаешь и рельеф, и дороги)
  • Минусы: сложнее в разработке, нужно два набора стилей

Вопросы для Analyst:

  • Какой вариант рекомендуешь и почему?
  • Какой подход лучше с точки зрения поддержки terrain (F-29)?

3. UX и поведение

  • Какой формат переключателя использовать (сегмент, иконка, выпадающий список)?
  • Нужно ли показывать подписи (населённые пункты, реки) в спутниковом режиме?
  • Как переключение должно влиять на terrain (автоматически выключать/оставлять)?
  • Нужна ли отдельная тёмная версия спутника (ночь)?
  • Какой дефолтный режим при первом открытии карты?

4. Производительность и кэширование

  • Тайлы спутника кэшировать на клиенте (browser cache) или через nginx?
  • Есть ли лимиты на запросы у выбранного источника?
  • Какое разрешение тайлов использовать (256 vs 512 px)?

5. Открытые вопросы для согласования со Славой

Analyst должен явно выделить вопросы, которые требуют решения от владельца продукта:

  1. Чистый спутник или гибрид?
    Хочешь видеть просто снимки из космоса, или чтобы дороги и подписи тоже отображались поверх?

  2. Приоритет качества vs скорости
    Готов ли жертвовать скоростью загрузки ради более детальных снимков (или наоборот)?

  3. Интеграция с terrain
    При включении спутника terrain должен автоматически выключаться, или оставаться (и тогда гипсометрия будет «накладываться» на спутник)?

  4. Яндекс или ESRI?
    Есть ли сильное предпочтение по источнику (российский vs международный)?

  5. Тёмный режим для спутника
    Нужна ли «ночная» версия спутника, или достаточно текущей?


Результат работы Analyst'а

  1. BRD_SATELLITE_MODE.md (обновлённый, с заполненными разделами)
  2. Рекомендация по источнику + архитектуре (с обоснованием)
  3. Список открытых вопросов с предлагаемыми вариантами ответов
  4. (Опционально) Ссылки на примеры реализации в других проектах

Следующие шаги (после анализа)

  1. Согласование BRD со Славой
  2. Создание DEV_TASK (Architect + Developer)
  3. Реализация переключателя и интеграция с terrain
  4. Тестирование (в т.ч. на мобильных устройствах)
  5. Деплой

Примечания

  • Спутниковый режим не отменяет текущую векторную карту — это дополнительная опция.
  • Кнопка 🏔️ (рельеф) должна продолжать работать в обоих режимах.
  • При переключении на спутник маршруты и POI должны оставаться видимыми (или с возможностью скрыть).