OpenLayers 2 a ces événements de couche "loadstart & loadend".
Qu'est-ce qui leur est équivalent dans OpenLayers 3?
Pendant qu'un calque vectoriel se charge et est rendu, je dois montrer une icône de chargement.
openlayers
layers
events
loading
Mariam Malak
la source
la source
Réponses:
En supposant que vous utilisez un
ol.layer.Vector
avec un,ol.source.GeoJSON
vous pouvez utiliser quelque chose comme ceci:Cela montre comment obtenir une notification lorsque la source vectorielle est chargée. Il ne fonctionne qu'avec des sources héritées de
ol.source.StaticVector
. Les exemples incluentol.source.GeoJSON
etol.source.KML
.Notez également que ce code risque de ne plus fonctionner à l'avenir lorsque ol3 fournira un moyen cohérent de savoir si / quand une source est chargée.
la source
vectorSource.once('change', function(e){...}
?Dans la version 3.10.0 de l'ol3, les choses ont changé. C'est donc plus clair que les anciennes versions mais toujours plus compliqué que ol2.
Ainsi, pour les couches TILE (ol.layer.Tile), votre extrait de code devrait ressembler à:
tandis que pour les couches WMS, l'approche est un peu différente:
Pour les couches vectorielles WFS, les choses sont encore plus compliquées:
consultez ce post. il a tout ce qui précède + un violon pour les couches vectorielles WFS
la source
Je n'ai pas trouvé la classe
ol.source.GeoJSON
et n'ai pas pu trouver un cas oùvectorSource.getState() != 'ready'
. J'ai donc fini par faire quelque chose comme ça:la source
vous pouvez également utiliser la getState () fonction
la source
source.getState()
renvoie toujours «prêt»Sur OL 4.5.0, pour les couches vectorielles, je n'ai pas trouvé de moyen de gérer la source, mais j'utilise à la place les éléments suivants sur les événements de couche:
J'espère que cela peut aider.
la source