3.9 KiB
3.9 KiB
Dev Report: Terrain UI Bugfix
Дата: 2026-05-13 Статус: DONE
Задача
Исправить 3 бага terrain UI:
- Подписи чекбоксов "Гипсометрия" и "Отмывка" не видны в попапе
- Слой гипсометрии не отличим визуально от базовой карты
- Подсказка "Зум 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)