3577ff32ac107b1b3c2d1253fd8eb34eeb9f6a72
Конфиг-only активация двух новых источников GPS-треков поверх pipeline ET-008. Не вводит новых компонентов, БД-таблиц, endpoint'ов. Config: - config/gps_sources.yaml: enduro_russia enabled=true, base_url исправлен на endurorussia.ru (без дефиса); добавлена запись wikiloc с max_tracks_per_run=50, activity_filter=[motorcycle, enduro]. - config/gps_regions.yaml: wikiloc добавлен в tsfo_plus_chuvashia.sources. Parser: - wikiloc.py: добавлен soft-cap max_tracks_per_run в collect(), извлечение created_at из GPX metadata/первого trkpt — для корректной межисточниковой дедупликации с EnduroRussia. UI (src/web/gps_tracks.js): - GPS_SOURCE_COLORS: добавлен цвет wikiloc (#4363d8). - Дефолтный фильтр sources включает wikiloc. - GPS_SOURCE_ATTRIBUTIONS: маппинг source_id → строка атрибуции; _updateGpsAttribution() подтягивает /api/gps-tracks/health и выставляет attribution с теми источниками, у которых tracks > 0. - _buildGpsFiltersUI: чекбокс «Wikiloc» в #gps-source-grid. Tests: - Fixtures: 7 файлов в tests/fixtures/gps-tracks/. - Unit: 10 UT-ER + 10 UT-WL — парсеры, MAPPING, bbox-фильтр, pagination, 429/403 graceful-stop, rate-limit, max_tracks_per_run. - Integration: IT-ER-01, IT-WL-01, IT-WL-02, IT-DEDUP-01, IT-LIC-01 через scripts.gps_collect.main + httpx.MockTransport. - Contract: 2 CT-ER с маркером @pytest.mark.network (nightly only). - JS: 2 новых теста на наличие wikiloc в SOURCE_COLORS и в фильтрах. Linters/Tests: ruff clean (новые файлы), 166 pytest passed, 24 JS-tests passed. Refs: ET-009 Acceptance: AC-01..AC-08, AC-14..AC-17 (для AC-09..AC-13 — продакшн-прогон) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…
Enduro Trails 🏍️
OSM-карта с фокусом на грунтовые дороги для построения эндуро-маршрутов.
Что это
Обычные карты оптимизированы под автомобили — асфальт яркий, грунтовки не видны. Enduro Trails переворачивает логику: грунтовки и тропы — главный слой, асфальт — тусклый фон.
Приложение помогает:
- Найти грунтовые дороги в любом районе
- Построить маршрут с максимумом грунта и минимумом асфальта
- Оценить сложность (grade 1-5, покрытие, уклон)
- Найти живописные места (озёра, виды, руины, броды)
- Загрузить свой GPX-трек и просмотреть его с профилем высот и статистикой
- Экспортировать маршрут в GPX для навигатора
Демо
https://openclaw.mva154.duckdns.org/enduro/
Фичи
- 🗺️ Карта грунтовок — MapLibre GL JS, кастомный стиль, тёмная/светлая тема
- 🛤️ Маршрут — до 5 альтернатив с разным балансом грунт/асфальт, промежуточные точки
- ✨ Красивый маршрут — замкнутый круг через живописные POI
- 🔗 Связка — соединить два трека грунтовками
- 🔍 Разведка — статистика грунтовок в радиусе 20/50/100 км
- 📏 Линейка — измерение расстояний на карте
- 📍 Метки — сохранение точек интереса
- 🏔️ Рельеф — гипсометрия + hillshade (SRTM 30м)
- 📊 Статистика — % грунта/асфальта, время, дистанция
- 📂 GPX загрузка — импорт треков с профилем высот, статистикой и сохранением при смене стиля карты
- 📥 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
Languages
Python
49.1%
JavaScript
39.7%
CSS
5.6%
HTML
4.3%
Lua
0.7%
Other
0.5%