auto-sync: 2026-05-02 13:10:01

This commit is contained in:
Stream
2026-05-02 13:10:02 +03:00
parent 7606915ca9
commit 7a7ae3246a

70
memory/2026-05-02.md Normal file
View File

@@ -0,0 +1,70 @@
# 2026-05-02 — Дневник
## Enduro Trails — отладка прототипа (утро)
### Что делали
Долгая отладка карты грунтовок ЦФО на http://82.22.50.71:5558
### Проблемы и решения
#### 1. style.json не грузился (404 на /static/style.json)
- Путь в index.html был `/static/style.json`, а сервер отдаёт `/style.json`
- Исправлено: путь исправлен на `/style.json`
#### 2. Шрифты — demotiles.maplibre.org отдавал 404
- MapLibre зависал при инициализации
- Исправлено: переключили на `https://fonts.openmaptiles.org/{fontstack}/{range}.pbf`
#### 3. Невалидный фильтр в style.json
- `trails-path-bridleway` использовал expression синтаксис: `["in", ["get", "highway"], "literal", [...]]`
- MapLibre 4.x падал с ошибкой "Expected 2 arguments, but found 3"
- Исправлено: заменили на legacy синтаксис `["in", "highway", "path", "bridleway", "footway"]`
#### 4. Самописный MVT энкодер давал пустые тайлы
- WKB геометрия имеет тип `0x20000002` (SRID+LineString), не входил в список `(2, 1000002, 2147483650)`
- Исправлено: заменили самописный энкодер на `mapbox-vector-tile` v2.2.0 + `shapely`
#### 5. Треки смещались при зуме
- `quantize_bounds` передавался с буфером, координаты выходили за [0,4096]
- Исправлено: клиппинг строго по границе тайла через `shapely.ops.clip_by_rect`, `quantize_bounds=(west, south, east, north)` без буфера
#### 6. Y-координата перевёрнута
- `mapbox-vector-tile` v2.2.0 НЕ флипает Y по умолчанию
- MVT spec: Y=0 = север (верх)
- Исправлено: `y_coord_down=True` в encode
#### 7. index.html — дублирование window._map и незакрытые теги
- При рефакторинге initMap() файл был обрезан без `</script></body></html>`
- Исправлено: добавлены закрывающие теги
### Текущее состояние (10:09 UTC)
- Треки отображаются ✅
- OSM подложка работает ✅
- Смещение при зуме — частично исправлено, Слава говорит "стало лучше, но ещё сохраняется"
- `y_coord_down=True` применён, ждём подтверждения от Славы
### Технические детали
#### Стек на сервере (mva154, 82.22.50.71:5558)
- Docker контейнер `enduro-trails`
- FastAPI + uvicorn
- SQLite с индексами min_lon/max_lon/min_lat/max_lat
- `mapbox-vector-tile` v2.2.0, `shapely`
- БД: `/data/centralfederal.sqlite`, 1.1М треков
#### Доступ к серверу
- SSH: `sshpass -p 'пароль' ssh node@82.22.50.71` (пароль в .env как MVA154_PASSWORD)
- Контейнер: `docker exec enduro-trails ...`
- app.py на сервере: `/app/app.py` внутри контейнера
- Локальная копия: `/tmp/app_new.py` (актуальная версия)
#### Ключевые файлы
- `tasks/enduro-trails/prototype/static/style.json` — стили карты
- `tasks/enduro-trails/prototype/static/index.html` — фронтенд
- `/tmp/app_new.py` — актуальный app.py (нужно синхронизировать с workspace)
### TODO
- [ ] Синхронизировать `/tmp/app_new.py` с `tasks/enduro-trails/prototype/app.py`
- [ ] Подтвердить что смещение при зуме полностью исправлено
- [ ] Обновить PROJECT.md и TASK.md для enduro-trails
- [ ] Обновить онтологию для проекта enduro-trails