#zooming #openlayers #tile
#масштабирование #openlayers #плитка
Вопрос:
Что касается текущей версии, я не нашел правильного способа определения начала масштабирования (без переопределения функции анимации). В моем случае события movestart и moveend не решают проблему.
Фактическая потребность в запуске масштабирования — это слой TileWMS. Мне нужно установить его невидимым на определенных уровнях масштабирования. Это не может быть установлено в конце перемещения, потому что в конце перемещения слой все еще загружает плитки с геосервера, хотя и имеет значение невидимый. Свойство включения / выключения также недоступно для самого слоя.
Установка невидимого слоя на movestart решает проблему с выборкой, но при перетаскивании уже загруженные плитки не видны 🙂 это раздражает пользователя.
Есть ли какая-либо другая идея, как это решить?
Спасибо
Комментарии:
1. Вы могли бы использовать
change:resolution
событие представления2. Технически установка невидимости на определенном слое выполнит только один запрос. Я не думаю, что есть способ поймать начало масштабирования, поскольку это своего рода неожиданный ввод. Id придерживайтесь конца масштабирования, на определенном уровне ваш слой будет невидимым, и тогда он не будет выполнять дальнейшие запросы.
3. Проблема в том, что у нас есть 10mio. точек или больше в базе данных, поэтому на более высоком уровне иногда может потребоваться более 30 секунд для рендеринга плиток. Конечно, после этого кэш создается, но изначально похоже, что на карте не отображаются плитки… И в течение этого времени геосервер блокируется из-за разрыва плитки.