Масштабирование (openlayers)

#zooming #openlayers #tile

#масштабирование #openlayers #плитка

Вопрос:

Что касается текущей версии, я не нашел правильного способа определения начала масштабирования (без переопределения функции анимации). В моем случае события movestart и moveend не решают проблему.

Фактическая потребность в запуске масштабирования — это слой TileWMS. Мне нужно установить его невидимым на определенных уровнях масштабирования. Это не может быть установлено в конце перемещения, потому что в конце перемещения слой все еще загружает плитки с геосервера, хотя и имеет значение невидимый. Свойство включения / выключения также недоступно для самого слоя.

Установка невидимого слоя на movestart решает проблему с выборкой, но при перетаскивании уже загруженные плитки не видны 🙂 это раздражает пользователя.

Есть ли какая-либо другая идея, как это решить?

Спасибо

Комментарии:

1. Вы могли бы использовать change:resolution событие представления

2. Технически установка невидимости на определенном слое выполнит только один запрос. Я не думаю, что есть способ поймать начало масштабирования, поскольку это своего рода неожиданный ввод. Id придерживайтесь конца масштабирования, на определенном уровне ваш слой будет невидимым, и тогда он не будет выполнять дальнейшие запросы.

3. Проблема в том, что у нас есть 10mio. точек или больше в базе данных, поэтому на более высоком уровне иногда может потребоваться более 30 секунд для рендеринга плиток. Конечно, после этого кэш создается, но изначально похоже, что на карте не отображаются плитки… И в течение этого времени геосервер блокируется из-за разрыва плитки.