Files
wiki/tasks/enduro-trails/PROJECT.md
2026-05-03 20:10:02 +03:00

6.1 KiB
Raw Blame History

Enduro Trails 🏍️

OSM-карта с фокусом на грунтовые дороги для построения красивых эндуро-маршрутов

Статус: active (прототип задеплоен)
Старт: 2026-05-02
Автор: Слава


Концепция

Обычные карты оптимизированы под автомобили — асфальт яркий, грунтовки не видны. Enduro Trails переворачивает эту логику: грунтовки/тропы — главный слой, асфальт — тусклый фон. Плюс фичи для поиска и построения красивых маршрутов (минимум асфальта, максимум красоты).

Ключевые фичи

Фича Описание
🛤️ "Дикий путь" Роутинг А→Б с максимизацией грунтовок
🎨 "Красивый маршрут" Замкнутый круг через водоёмы, виды, заброшки
🏔️ "Горка" Макс набор высоты, мин дистанция
🔗 "Связка" Соединить два трека грунтовками
📍 "Разведка" Грунтовки вокруг точки
🚧 "Препятствия" Броды, шлагбаумы, болота, ЛЭП
🌐 "Народные треки" Сбор и отображение треков с внешних сервисов
🔍 "Поиск" Поиск населённых пунктов, адресов и объектов как на обычных картах
🌙 "День/ночь" Переключатель темы — светлая/тёмная карта
🎨 "Эндуро-дизайн" Современный агрессивный UI в духе эндуро/оффроад

Регионы

  1. ЦФО + Чувашия (первый регион, прототип)
  2. Расширение на новые ФО по запросу

План

Прототип (mva154) → проверка концепта → новая VM с PostGIS + OSRM → масштабируемая платформа

Архитектура

Схема: ../../enduro_architecture.png
Концепт: CONCEPT.md

Стек

  • Pyrosm/Osmium → парсинг PBF
  • Spatialite/PostGIS → хранение
  • OSRM (кастомный профиль) → роутинг
  • FastAPI → бэкенд
  • MapLibre GL JS → фронт (веб + PWA)

Хостинг

  • Прототип: slin@82.22.50.71, контейнер prototype-enduro-trails-1, порт 5558
  • URL: https://openclaw.mva154.duckdns.org/enduro/
  • Продакшен: новая VM (4 vCPU, 8 GB RAM, 50 GB диск)

Текущее состояние (2026-05-03)

  • Прототип задеплоен: https://openclaw.mva154.duckdns.org/enduro/
  • БД: 1 141 926 треков, 14 882 POI (Spatialite)
  • Векторные тайлы (MVT) через FastAPI, 4 uvicorn workers
  • LRU-кэш тайлов (512 тайлов в памяти)
  • Упрощение геометрии по зуму (Shapely simplify)
  • Фильтр треков по длине на низких зумах (z8: ≥500м, z9: ≥200м)
  • Dockerfile — быстрый старт контейнера без apt/pip при рестарте
  • Nginx /enduro/ с HTTPS через openclaw.mva154.duckdns.org
  • Фронт: MapLibre GL JS, легенда (Lev1-2 / Lev3-5 / Тропа)
  • Тропы — красный пунктир, асфальт скрыт
  • Кнопки: 🧭 компас (север/свободный), 📍 геолокация с маркером
  • Попапы с name, surface, tracktype, length_m, mtb_scale

План развития

Фаза Что Статус
Фаза 1 Прототип — визуализация OSM треков Готово
Фаза 2 OSRM роутинг + "Дикий путь" 🔄 В работе
Фаза 3 SRTM рельеф + уклоны + "Горка" Планируется
Фаза 4 "Красивый маршрут", "Связка", "Разведка" Планируется
Фаза 5 PWA + оффлайн Планируется
Фаза 6 Народные треки — сбор с внешних сервисов Планируется

Фаза 6: Народные треки (детали)

Источники для сбора:

  • OSM Traces — публичные GPS-треки загруженные в OSM, бесплатно, API открытый
  • Wikiloc — огромная база треков эндуристов/велосипедистов/туристов, есть API
  • Komoot — активно используется эндуристами и велотуристами
  • Strava — велосипедисты, бегуны (API платный для массового сбора)
  • 4x4travel.ru — джипперы, форум с GPX-файлами
  • Enduroad.ru — эндуро-сообщество
  • Garmin Connect — публичные активности

Реализация:

  • Сборщик треков → конвертация в GeoJSON → отдельная таблица community_tracks в БД
  • Отдельный слой на карте "Народные треки" (другой цвет, можно вкл/выкл)
  • Фильтрация по типу активности: мото / велосипед / джип / пеший
  • Атрибуты: источник, автор, дата, рейтинг, тип активности
Компонент Объём
PBF (регион) ~150-200 MB
Spatialite/PostGIS ~500 MB - 1 GB
OSRM граф ~1-3 GB
SRTM DEM ~2-3 GB
Тайлы (z10-16) ~2-5 GB
Итого ~5-12 GB

Ссылка на онтологию: proj_enduro_trails