# 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 должны оставаться видимыми (или с возможностью скрыть).