47 lines
2.0 KiB
Markdown
47 lines
2.0 KiB
Markdown
---
|
||
type: phase-brd
|
||
phase_id: PH-1.mvp
|
||
title: "MVP: карта грунтовок ЦФО + MVT тайлы"
|
||
version: 1
|
||
status: done
|
||
created_at: 2026-05-18
|
||
authors:
|
||
- "agent:stream"
|
||
---
|
||
|
||
# PH-1 — MVP: карта грунтовок ЦФО
|
||
|
||
## Цель
|
||
|
||
Создать веб-карту с фокусом на грунтовые дороги: грунтовки и тропы — главный слой, асфальт — тусклый фон. Данные из OSM, отображение через MapLibre GL JS с кастомным стилем.
|
||
|
||
## Scope
|
||
|
||
- Загрузка OSM PBF (Geofabrik, ЦФО + Чувашия)
|
||
- Конвертация в SQLite/Spatialite (1.1M треков, 14K POI)
|
||
- Self-hosted MVT (vector tiles) через FastAPI
|
||
- MapLibre GL JS с кастомным стилем (грунтовки яркие, асфальт тусклый)
|
||
- Деплой через Docker Compose на mva154
|
||
|
||
## Что реализовано
|
||
|
||
- FastAPI backend с эндпоинтами для MVT тайлов
|
||
- SQLite/Spatialite БД с данными ЦФО + Чувашия
|
||
- Кастомный стиль MapLibre: цветовая дифференциация по типу покрытия (track grade 1-5)
|
||
- Docker Compose конфигурация
|
||
- nginx reverse proxy (`/enduro/` → контейнер)
|
||
|
||
## Ключевые решения
|
||
|
||
| Решение | Причина |
|
||
|---------|---------|
|
||
| MapLibre GL JS (не Leaflet) | WebGL, производительность, vector tiles |
|
||
| Vanilla JS (не React) | Простота, нет build step, быстрый старт |
|
||
| FastAPI (не Django) | Лёгкий, async, минимум зависимостей |
|
||
| SQLite/Spatialite (не PostGIS) | Портативность, zero-config, достаточно для 1 региона |
|
||
| Self-hosted MVT (не TileServer GL) | Меньше зависимостей, контроль над фильтрацией |
|
||
|
||
## Дата завершения
|
||
|
||
02.05.2026
|