Множество событий postrender и rendercomplete для загрузки одного слоя VectorTile.

Мы добавили новый слой VectorTile с функцией стиля в PluggableMap (OpenLayers v6.4.3).

Согласно документу:

  • событие слоя 'postrender' запускается после рендеринга слоя
  • Событие map 'rendercomplete' запускается, когда рендеринг завершен, то есть все источники и тайлы завершили загрузку для текущего окна просмотра, и все тайлы исчезают.

Регистрируя эти события в консоли при загрузке этой карты (один слой VectorTile), мы можем видеть 6 событий «postrender» слоя и 3 события «rendercomplete» карты.

Кажется, что событие слоя «postrender» запускается после каждой визуализированной плитки (из средства визуализации / холста / VectorTileLayer) слоя, а карта «rendercomplete» запускается каждые 2 визуализированных плитки.

Как определить, когда слой полностью отрисован, т. е. отрисованы все плитки?


person J.P. Duvet    schedule 16.12.2020    source источник


Ответы (1)


Карта должна быть полностью отрисована при первом событии rendercomplete.

Я создал PR, который должен исправить повторяющиеся события rendercomplete, которые вы наблюдали. https://github.com/openlayers/openlayers/pull/11859

person MoonE    schedule 24.12.2020
comment
Можете ли вы подтвердить, что теперь обновленная версия OpenLayers (6.5.0) должна исправить эту проблему? - person J.P. Duvet; 08.02.2021
comment
В 6.5.0 я все еще вижу много «пост-рендеринга» и «рендеринга завершенного», никаких изменений с этой точки зрения: как определить, когда слой полностью отрисован, то есть все тайлы отрисованы? - person J.P. Duvet; 08.02.2021
comment
Связанный PR включен в v6.5.0. - person MoonE; 09.02.2021
comment
Есть открытая проблема со слоями изображений: github.com/openlayers/openlayers/issues/11934, что, я думаю, не связано с вашей проблемой. Не могли бы вы привести рабочий пример, демонстрирующий вашу проблему? Вы можете изменить любой из примеров на странице openlayers.org/en/latest/examples, нажав на кнопке Edit вверху справа. - person MoonE; 09.02.2021