auto-sync: 2026-05-31 14:10:01

This commit is contained in:
Stream
2026-05-31 14:10:15 +03:00
parent 73a81b1096
commit f45d5a9b18

View File

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