3.7 KiB
3.7 KiB
type, work_item_id, title, created_at, source, requester
| type | work_item_id | title | created_at | source | requester |
|---|---|---|---|---|---|
| business-request | ET-008 | GPS-треки с публичных платформ на карте | 2026-06-01 | plane | Слава |
Бизнес-запрос — ET-008
Исходная формулировка
Хочу видеть на карте GPS-треки с публичных платформ (OSM, чужие ссылки на GPX), а не только локальные файлы. Минимум: вставить ссылку на GPX-файл — увидеть трек. Дальше — поиск чужих публичных треков в видимой области карты, чтобы перед поездкой посмотреть, кто и где ездил.
Контекст и ограничения
- ET-006 уже даёт инфраструктуру отображения GPX-треков (модель, рендеринг, sheet, профиль высот). Эту инфраструктуру переиспользуем.
- В стеке нет авторизации пользователей и БД с user accounts — платформы с обязательным OAuth (Strava, Komoot) вне scope MVP.
- Платный API Wikiloc — вне scope MVP.
- CORS не позволяет браузеру тянуть GPX напрямую с большинства платформ — нужен прокси через FastAPI.
- 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, когда появится система аккаунтов |
Уточнения
- URL-импорт должен работать с любой прямой ссылкой на
.gpx-файл (GitHub raw, gist, личный сайт, веб-сервер пользователя). - Поиск по OSM-трекам ограничен видимой областью карты (bbox). Глобальный поиск не требуется.
- Загруженные с публичных платформ треки попадают в тот же sheet
#sheet-gpx, что и локальные GPX, и ведут себя идентично (статистика, профиль высот, удаление, fit bounds, переживание смены стиля). - Источник трека (URL / OSM trace id) сохраняется в модели и отображается в карточке трека для пользователя.
- Кэш на сервере — TTL 24 часа, не персистентный (in-memory).