Files
wiki/memory/2026-05-13.md
2026-05-13 16:20:01 +03:00

5.3 KiB
Raw Blame History

2026-05-13 — Terrain UI фикс + генерация тайлов

Что сделано

Terrain UI баги (из UI-тестов)

  • Попап terrain — позиционирование исправлено (привязка к кнопке, а не top-right угол)
  • Подписи чекбоксов — были невидимы из-за отсутствия шрифтов в headless Chromium. Установлены Noto Sans в тестовое окружение. В реальном браузере подписи были видны всегда.
  • "Зум 10+" подсказка для hillshade — теперь вызывается при открытии попапа + стилизована заметно
  • Переименование: Гипсометрия → "Высоты цветом", Отмывка → "Тени рельефа"
  • Opacity: снижен с 0.85 → 0.65 для читаемости подписей населённых пунктов

Генерация hypso тайлов

  • Root cause пустых тайлов: VRT создавался с относительными путями к HGT, сохранялся в другую директорию → GDAL не находил source files → все пиксели = 0
  • Фикс: VRT строится с абсолютными путями через -input_file_list
  • Тестовая генерация: Чувашия (зумы 5-14) — подтверждена работоспособность
  • Полная генерация: 81 HGT файл, зумы 5-12, ~48K тайлов

Скачивание недостающих SRTM

  • Дыра E041-E046 (Владимир — Нижний Новгород — Чебоксары) закрыта
  • 14 файлов скачаны с kurviger.de зеркала (User-Agent нужен!)
  • Итого: 81 HGT файл (было 67)

Новый слой: Перепады (TRI — Terrain Ruggedness Index)

  • Отдельный чекбокс "Перепады" в попапе рельефа
  • Алгоритм: gdaldem TRI → color-relief с порогами от TRI=3
  • Цветовая шкала: прозрачный (плоско) → жёлтый (3-5) → оранжевый (5-10) → красный (10+)
  • Первая версия порогов (TRI=10) была слишком высокой — среднее TRI=2.97
  • Пересгенерено с порогом от 3 — теперь видно

Деплой

  • Статика отдаётся через контейнер prototype-enduro-trails-1 (FastAPI)
  • Файлы на хосте НЕ = файлы в контейнере (образ вкомпилен при сборке)
  • Нужен docker cp после каждого изменения CSS/JS/HTML
  • Nginx location /enduro/terrain//home/slin/enduro-trails/data/terrain/ (тайлы с хоста напрямую)

Технические заметки

SRTM зеркала

  • firmware.ardupilot.org/SRTM/ap_srtm3/ — ненадёжно (0 байт)
  • srtm.kurviger.de/SRTM3/Eurasia/ — работает, но нужен User-Agent (403 без него)
  • viewfinderpanoramas.org/dem3/ — таймауты

Headless Chromium шрифты

  • Контейнер OpenClaw не имеет шрифтов и fontconfig
  • Установлены Noto Sans в ~/.local/share/fonts/ + fontconfig из deb
  • Без этого кириллица не рендерится в скриншотах

TRI color ramp (финальный)

0-2: прозрачный
3: жёлтый (alpha 60)
4: жёлтый (alpha 100)
5: оранжевый (alpha 140)
7: тёмно-оранжевый (alpha 180)
10: красный (alpha 200)
15+: тёмно-красный (alpha 220+)

TODO

  • Попап terrain: третий чекбокс обрезается на мобильном — нужен overflow/scroll или сдвиг позиции
  • На зуме 10 MapLibre запрашивает тайлы зума 11 (devicePixelRatio?) — нужно генерить зум 11 тоже или разобраться с overzooming

Расширение покрытия на запад (Смоленск)

  • Слава попросил покрытие от Солнечногорска (~37E) до Смоленска (~32E)
  • Скачаны 20 SRTM файлов: N53-N56, E032-E036 (kurviger зеркало, User-Agent обязателен)
  • Итого: 101 HGT файл (было 81)
  • Перегенерены hypso + TRI тайлы (зумы 5-12), ~65K тайлов
  • Bounds в app.js обновлены: [35, 45, 55, 62][32, 45, 55, 62]
  • docker cp app.js в контейнер
  • Покрытие теперь: 32E (Смоленск) — 51E (Чебоксары), 50N — 61N

TODO (обновлённый)

  • Попап terrain: третий чекбокс обрезается на мобильном — нужен overflow/scroll или сдвиг позиции
  • На зуме 10 MapLibre запрашивает тайлы зума 11 (devicePixelRatio?) — нужно генерить зум 11 тоже или разобраться с overzooming
  • Слава ещё не подтвердил что видит покрытие от Смоленска — ждём фидбек