claude-bot 55c9c389cd feat(gpx): загрузка и визуализация GPX-треков (ET-006)
Клиентская загрузка GPX 1.1: парсинг через DOMParser с чанковой
конвертацией (ADR-003), отрисовка треков и waypoints на карте,
панель #sheet-gpx со списком треков, статистикой и canvas-профилем
высот. GPX-слои встают ниже маршрута OSRM и восстанавливаются после
смены стиля карты (REQ-F-13).

- src/web/gpx.js — новый модуль фичи (ADR-002): парсинг, модель
  window.gpxTracks, слои/маркеры карты, sheet-gpx, профиль высот
- index.html / app.css — кнопка загрузки, кнопка тулбара, панель
  #sheet-gpx, toast-уведомления, индикатор парсинга
- app.js — один хук rebuildGpxOverlays() в rebuildMapOverlays()
- тесты: gpx.test.js (node --test, U-01..U-21) +
  test_gpx_upload.py (pytest: статические проверки + JS-раннер)

Refs: ET-006

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 01:00:27 +00:00
2026-05-15 13:30:14 +03:00
2026-05-15 13:30:14 +03:00
2026-05-15 13:30:14 +03:00

Enduro Trails 🏍️

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

Что это

Обычные карты оптимизированы под автомобили — асфальт яркий, грунтовки не видны. Enduro Trails переворачивает логику: грунтовки и тропы — главный слой, асфальт — тусклый фон.

Приложение помогает:

  • Найти грунтовые дороги в любом районе
  • Построить маршрут с максимумом грунта и минимумом асфальта
  • Оценить сложность (grade 1-5, покрытие, уклон)
  • Найти живописные места (озёра, виды, руины, броды)
  • Экспортировать маршрут в GPX для навигатора

Демо

https://openclaw.mva154.duckdns.org/enduro/

Фичи

  • 🗺️ Карта грунтовок — MapLibre GL JS, кастомный стиль, тёмная/светлая тема
  • 🛤️ Маршрут — до 5 альтернатив с разным балансом грунт/асфальт, промежуточные точки
  • Красивый маршрут — замкнутый круг через живописные POI
  • 🔗 Связка — соединить два трека грунтовками
  • 🔍 Разведка — статистика грунтовок в радиусе 20/50/100 км
  • 📏 Линейка — измерение расстояний на карте
  • 📍 Метки — сохранение точек интереса
  • 🏔️ Рельеф — гипсометрия + hillshade (SRTM 30м)
  • 📊 Статистика — % грунта/асфальта, время, дистанция
  • 📥 GPX экспорт — трек + waypoints для навигатора
  • 🌙 Тёмная тема — авто (по закату), ручная, синхронизация карты и UI

Стек

Компонент Технология
Frontend MapLibre GL JS + vanilla JS
Backend Python 3.12 + FastAPI + uvicorn
БД SQLite + Spatialite (1.1M треков, 14K POI)
Роутинг OSRM с кастомным эндуро-профилем
Тайлы Self-hosted raster (terrain, hillshade, TRI)
Контейнеризация Docker + Compose
CI Gitea Actions

Регион

ЦФО + Чувашия (расширение по запросу)

Быстрый старт

make dev        # поднять локально (Docker Compose)
make test       # запустить тесты
make lint       # линтеры
make build      # собрать Docker-образ

Структура

src/api/        — FastAPI backend (маршруты, тайлы, поиск)
src/web/        — фронтенд (MapLibre, UI)
tests/          — тесты (unit, integration, e2e)
docs/           — документация, ADR, work-items
scripts/        — утилиты
migrations/     — миграции БД
.openclaw/      — system prompts агентов

Фазы

# Название Описание
PH-1 MVP Карта грунтовок + MVT тайлы
PH-2 Routing OSRM роутинг + базовый UI
PH-3 Smart Route Альтернативы, статистика, GPX
PH-4 Advanced Routing Красивый маршрут, связка, разведка
PH-5 Redesign Тёмная тема, mobile UI, UX
PH-6 Terrain Hillshade + гипсометрия + TRI
PH-7 Barriers Шлагбаумы, тротуары, слой препятствий
PH-8 Elevation Profile Профиль высот, режим «Горка»
PH-9 PWA Офлайн режим

Детали каждой фазы: docs/phases/

Лицензия

Данные: © OpenStreetMap contributors (ODbL) Рельеф: NASA SRTM (Public Domain)

Description
Карта эндуро-маршрутов с рельефом и навигацией
Readme 3.4 MiB
Languages
Python 49.1%
JavaScript 39.7%
CSS 5.6%
HTML 4.3%
Lua 0.7%
Other 0.5%