Files
wiki/tasks/enduro-trails/reports/dev-2026-05-13-terrain-bugfix.md
2026-05-13 08:40:02 +03:00

3.9 KiB
Raw Blame History

Dev Report: Terrain UI Bugfix

Дата: 2026-05-13 Статус: DONE

Задача

Исправить 3 бага terrain UI:

  1. Подписи чекбоксов "Гипсометрия" и "Отмывка" не видны в попапе
  2. Слой гипсометрии не отличим визуально от базовой карты
  3. Подсказка "Зум 10+" не отображается при зуме < 10

Сделано

  • Task 1: Видимость подписей в попапе

    • Добавлено явное позиционирование .terrain-popup: top: 60px; right: 60px
    • Увеличен font-size до 15px в .terrain-checkbox
    • Добавлен font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif
    • Добавлено правило .terrain-checkbox span { font-size: 15px; line-height: 1.3 }
    • Увеличен padding до 8px 4px
  • Task 2: Видимость гипсометрии (код)

    • Увеличен opacity с 0.55 до 0.70
    • ⚠️ Обнаружена проблема данных: ВСЕ 1.67M тайлов гипсометрии — пустые (334 байт, полностью прозрачные PNG). Код исправлен, но слой не будет виден пока не перегенерируются тайлы с реальными данными.
    • Схема tms корректна (подтверждено наличием tilemapresource.xml от gdal2tiles)
  • Task 3: Подсказка "Зум 10+"

    • Добавлен вызов updateHillshadeAvailability() при открытии попапа (внутри if (!isVisible))
    • Стиль .terrain-hint изменён: цвет на var(--accent, #4CAF50), добавлен font-style: italic, padding увеличен

Изменённые файлы

  • /home/slin/enduro-trails/prototype/static/app.css — стили попапа, чекбоксов, хинта
  • /home/slin/enduro-trails/prototype/static/app.js — opacity 0.55→0.70, вызов updateHillshadeAvailability при открытии попапа

Результат

  • Подписи: явный font-size 15px, font-family, позиционирование top/right — должны быть читаемы
  • Гипсометрия: opacity увеличен, но тайлы пустые — нужна перегенерация данных
  • Hillshade hint: вызывается при открытии попапа, стиль зелёный italic — заметен

Проблемы и решения

Пустые тайлы гипсометрии

  • Что: Все 1,672,325 тайлов hypso — прозрачные PNG (334 байт, 256x256 RGBA, все пиксели = 0)
  • Причина: gdal2tiles отработал, но исходный растр либо пустой, либо не покрывает нужную область
  • Решение: Нужна перегенерация тайлов из корректного DEM/гипсометрического растра. Это отдельная задача.

Дубликат позиционирования в light theme

  • Что: sed подставил top/right и в .theme-light .terrain-popup
  • Решение: Удалил дубликат — позиционирование наследуется из базового правила

updateHillshadeAvailability вне условия

  • Что: Первый sed вставил вызов до if (!isVisible) — срабатывал и при закрытии
  • Решение: Перенёс внутрь блока if (!isVisible) {

Следующий шаг

  • Перегенерировать тайлы гипсометрии из реального DEM (отдельная задача)
  • Визуальное тестирование попапа в браузере (Ctrl+F5)