O OpenLayers 2 possui esses eventos de camada "loadstart & loadend".
O que é equivalente a eles no OpenLayers 3?
Enquanto uma camada vetorial é carregada e renderizada, preciso mostrar um ícone de carregamento.
openlayers
layers
events
loading
Mariam Malak
fonte
fonte
Respostas:
Supondo que você use um
ol.layer.Vector
com um,ol.source.GeoJSON
você pode usar algo como isto:Isso mostra como obter uma notificação quando a fonte do vetor é carregada. Funciona apenas com fontes herdadas de
ol.source.StaticVector
. Exemplos incluemol.source.GeoJSON
eol.source.KML
.Além disso, observe que esse código pode não funcionar mais no futuro quando o ol3 fornecer uma maneira consistente de saber se / quando uma fonte é carregada.
fonte
vectorSource.once('change', function(e){...}
?Na versão 3.10.0 do ol3, as coisas mudaram. Portanto, é mais claro que as versões anteriores, mas ainda mais complicado que o ol2.
Portanto, para as camadas TILE (ol.layer.Tile), seu snip de código deve se parecer com:
enquanto que para as camadas WMS, a abordagem é um pouco diferente:
Para as camadas vetoriais WFS, as coisas são ainda mais complicadas:
verifique este post. ele tem todas as opções acima + um violino para as camadas vetoriais WFS
fonte
Eu não encontrei a classe
ol.source.GeoJSON
e não consegui encontrar um caso em quevectorSource.getState() != 'ready'
. Então acabei fazendo algo assim:fonte
você também pode usar a função getState ()
fonte
source.getState()
sempre retorna 'pronto'No OL 4.5.0, para camadas vetoriais, não encontrei uma maneira de lidar com a fonte; em vez disso, usei o seguinte nos eventos da camada:
Espero que possa ajudar.
fonte