diff --git a/CLAUDE.md b/CLAUDE.md index eb1d8c6..a05a318 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -36,7 +36,8 @@ ## Конвенции - Conventional Commits (`feat:`, `fix:`, `docs:`, `refactor:`, `test:`) - Ветки: `feature/PROJ-NNN-slug`, `bugfix/PROJ-NNN-slug` -- ADR: `docs/architecture/adr/adr-NNNN-slug.md` +- ADR: `docs/work-items//06-adr/.md` (per work-item ADRs) +- Global ADR: `docs/architecture/adr/adr-NNNN-slug.md` (cross-cutting decisions) - Work items: `docs/work-items//` ## Правила для агентов diff --git a/README.md b/README.md index 33616ce..74da7e0 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ OSM-карта с фокусом на грунтовые дороги для п - Построить маршрут с максимумом грунта и минимумом асфальта - Оценить сложность (grade 1-5, покрытие, уклон) - Найти живописные места (озёра, виды, руины, броды) +- Загрузить свой GPX-трек и просмотреть его с профилем высот и статистикой - Экспортировать маршрут в GPX для навигатора ## Демо @@ -28,6 +29,7 @@ https://openclaw.mva154.duckdns.org/enduro/ - 📍 **Метки** — сохранение точек интереса - 🏔️ **Рельеф** — гипсометрия + hillshade (SRTM 30м) - 📊 **Статистика** — % грунта/асфальта, время, дистанция +- 📂 **GPX загрузка** — импорт треков с профилем высот, статистикой и сохранением при смене стиля карты - 📥 **GPX экспорт** — трек + waypoints для навигатора - 🌙 **Тёмная тема** — авто (по закату), ручная, синхронизация карты и UI diff --git a/docs/architecture/README.md b/docs/architecture/README.md index db6410b..aabaab8 100644 --- a/docs/architecture/README.md +++ b/docs/architecture/README.md @@ -19,3 +19,14 @@ ## Деплой Один Docker Compose на mva154. Nginx проксирует /enduro/ на контейнер. + +## Клиентские модули (src/web/) + +| Модуль | Описание | Work Item | +|--------|----------|-----------| +| `app.js` | Главный модуль: MapLibre, роутинг, UI, тёмная тема | PH-1..PH-6 | +| `units.js` | Централизованный форматтер расстояний (км/мили), localStorage, событие `unitchange` | ET-005 | +| `gpx.js` | GPX 1.1 парсер (DOMParser), рендеринг треков/waypoints, canvas-профиль высот, `rebuildMapOverlays()` | ET-006 | +| `style.json` | MapLibre стиль (светлая тема) | PH-1/PH-5 | +| `style-dark.json` | MapLibre стиль (тёмная тема) | PH-5 | + diff --git a/docs/phases/PH-7.barriers/00-phase-brd.md b/docs/phases/PH-7.barriers/00-phase-brd.md index 751c09f..3469ec2 100644 --- a/docs/phases/PH-7.barriers/00-phase-brd.md +++ b/docs/phases/PH-7.barriers/00-phase-brd.md @@ -29,6 +29,18 @@ authors: - Иконки по типу барьера - Popup с информацией (тип, OSM ID) + +## Что реализовано + +### ET-001 (done) +- ✅ **F-07** — Шлагбаумы и физические барьеры исключены из OSRM: `barrier=gate|bollard|lift_gate|chain|cycle_barrier|motorcycle_barrier|border_control|block` → `mode.inaccessible` +- ✅ **F-08** — Тротуары и пешеходные зоны исключены из OSRM: `highway=footway|pedestrian|steps|corridor` → blocked in process_way +- ✅ `cattle_grid` и `ford` оставлены проезжими +- ✅ OSRM граф пересобран с обновлённым `enduro.lua` + +### Pending +- ❌ **F-10** — Визуальный слой препятствий на карте (шлагбаумы/ворота как иконки с popup) — **не реализовано** + ## Метрики успеха - Маршрут через точку с шлагбаумом → OSRM обходит или возвращает "не найден" diff --git a/docs/work-items/ET-005/00-business-request.md b/docs/work-items/ET-005/00-business-request.md index ed5cded..256d3bd 100644 --- a/docs/work-items/ET-005/00-business-request.md +++ b/docs/work-items/ET-005/00-business-request.md @@ -1,7 +1,27 @@ -# Business Request: Добавить кнопку переключения единиц измерения (км/мили) +--- +type: business-request +work_item_id: ET-005 +title: "Добавить переключатель единиц измерения расстояний (км/мили)" +status: done +created_at: 2026-05-20 +source: telegram +requester: Слава +--- -Work Item ID: ET-005 +# Бизнес-запрос — ET-005 -## Description +## Исходная формулировка -TBD +> Добавить кнопку переключения единиц измерения (км/мили). + +## Контекст + +- Канал: Telegram +- Приоритет: не указан (обычный) +- Тип: UI enhancement + +## Уточнения + +1. Переключатель размещается в попапе рельефа (terrain popup) +2. Единицы применяются ко всем расстояниям в интерфейсе (маршруты, статистика, линейка) +3. Выбор сохраняется в localStorage между сессиями