OpenLayers 2 имеет эти события слоя «loadstart & loadend».
Что эквивалентно им в OpenLayers 3?
Пока векторный слой загружается и отображается, мне нужно показать значок загрузки.
openlayers
layers
events
loading
Мариам Малак
источник
источник
Ответы:
Предполагая, что вы используете
ol.layer.Vector
с,ol.source.GeoJSON
вы можете использовать что-то вроде этого:Здесь показано, как получить уведомление при загрузке векторного источника. Работает только с источниками, унаследованными от
ol.source.StaticVector
. Примеры включаютol.source.GeoJSON
иol.source.KML
.Также обратите внимание, что этот код может больше не работать в будущем, когда ol3 предоставит согласованный способ узнать, загружен ли источник или когда он загружен.
источник
vectorSource.once('change', function(e){...}
?В версии 3.10.0 ol3 все изменилось. Это более понятно, чем старые версии, но все же сложнее, чем ol2.
Поэтому для слоев TILE (ol.layer.Tile) фрагмент кода должен выглядеть следующим образом:
в то время как для слоев WMS подход немного другой:
Для векторных слоев WFS все еще сложнее:
проверьте этот пост. у него есть все вышеперечисленное + скрипка для векторных слоев WFS
источник
Я не нашел класс
ol.source.GeoJSON
, и не смог найти случай, гдеvectorSource.getState() != 'ready'
. В итоге я сделал что-то вроде этого:источник
Вы можете также использовать GetState () функцию
источник
source.getState()
всегда возвращается «готово»В OL 4.5.0 для векторных слоев я не нашел способа справиться с источником, вместо этого я использую следующее для событий слоя:
Надеюсь, это поможет.
источник