diff --git a/docs/work-items/ET-008/00-business-request.md b/docs/work-items/ET-008/00-business-request.md index 713e54d..f67066f 100644 --- a/docs/work-items/ET-008/00-business-request.md +++ b/docs/work-items/ET-008/00-business-request.md @@ -1,51 +1,26 @@ ---- -type: business-request -work_item_id: ET-008 -title: "GPS-треки с публичных платформ на карте" -created_at: 2026-06-01 -source: plane -requester: Слава ---- +# Business Request: GPS-треки с публичных платформ на карте -# Бизнес-запрос — ET-008 +## Цель +Отобразить на карте enduro-trails реальные GPS-треки с публичных платформ, чтобы видеть дороги/тропы которых нет на OSM, понимать где реально ездят, и выявлять мёртвые дороги. -## Исходная формулировка +## Требования +- Отдельные линии треков (не heatmap) +- Регион: ЦФО + Чувашия (расширяемо на другие регионы РФ) +- Фильтрация по типу активности (enduro/moto/offroad приоритет) -> Хочу видеть на карте GPS-треки с публичных платформ (OSM, чужие ссылки -> на GPX), а не только локальные файлы. Минимум: вставить ссылку на -> GPX-файл — увидеть трек. Дальше — поиск чужих публичных треков в -> видимой области карты, чтобы перед поездкой посмотреть, кто и где ездил. +## Источники треков (РФ покрытие) +- Wikiloc (enduro/Russia раздел, GPX) +- Offmaps.ru (offroad специализация) +- Тропинки.ру / ttrails.ru (GPX/KML, эндуро-категория) +- EnduroRussia.ru (GPX по регионам, фильтр сложности) +- OSM GPS Traces (публичные, API) +- Nakarte.me (агрегатор) +- Komoot (API) +- Strava Metro (для валидации популярности) -## Контекст и ограничения - -1. ET-006 уже даёт инфраструктуру отображения GPX-треков (модель, - рендеринг, sheet, профиль высот). Эту инфраструктуру переиспользуем. -2. В стеке нет авторизации пользователей и БД с user accounts — - платформы с обязательным OAuth (Strava, Komoot) **вне scope MVP**. -3. Платный API Wikiloc — **вне scope MVP**. -4. CORS не позволяет браузеру тянуть GPX напрямую с большинства - платформ — нужен прокси через FastAPI. -5. Rate limits публичных API (OSM, Overpass) — нужен server-side кэш. - -## Решения аналитика (по умолчанию, при отсутствии явных уточнений) - -| Вопрос | Решение | Обоснование | -|--------|---------|-------------| -| Платформы MVP | OSM Public GPS Traces + универсальный GPX-по-URL | Открытые API без авторизации, бесплатные, покрывают сценарии «свой трек по ссылке» и «чужие треки рядом» | -| Сценарии | (1) импорт по URL; (2) bbox-поиск треков в видимой области | Минимальный полезный набор, не требующий новых разделов UI | -| Хранение | Сессия (как ET-006) + server-side LRU-кэш на бэкенде | Не вводим БД и аккаунты; кэш защищает от rate limits | -| Auth | Нет | Все запросы — публичные данные | -| Платформы post-MVP | Wikiloc API, Strava OAuth, Komoot OAuth | Будут отдельными work item, когда появится система аккаунтов | - -## Уточнения - -1. URL-импорт должен работать с любой прямой ссылкой на `.gpx`-файл - (GitHub raw, gist, личный сайт, веб-сервер пользователя). -2. Поиск по OSM-трекам ограничен видимой областью карты (bbox). - Глобальный поиск не требуется. -3. Загруженные с публичных платформ треки попадают в тот же sheet - `#sheet-gpx`, что и локальные GPX, и ведут себя идентично (статистика, - профиль высот, удаление, fit bounds, переживание смены стиля). -4. Источник трека (URL / OSM trace id) сохраняется в модели и - отображается в карточке трека для пользователя. -5. Кэш на сервере — TTL 24 часа, не персистентный (in-memory). +## Функционал +1. Сбор GPX-треков по bbox региона из источников +2. Хранение с дедупликацией и метаданными (источник, тип активности, дата, сложность) +3. Визуализация отдельными линиями на карте (цвет по источнику или типу) +4. Фильтр по типу активности и источнику +5. Расширяемость на новые регионы