Files
wiki/memory/2026-05-02.md
2026-05-02 14:30:01 +03:00

4.3 KiB
Raw Blame History

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

Обновлённый vibecode API key (11:27 UTC)

  • Слава прислал новый ключ для провайдера vibecode: sk-81bb8312c879e5c3aec7d02d671edcb4eab4b28cebcb32cb
  • Нужно обновить в ~/.openclaw/.env (переменная VIBECODE_API_KEY)