OpenLayers 2 hat diese Layer-Ereignisse "loadstart & loadend".
Was entspricht ihnen in OpenLayers 3?
Während eine Vektorebene geladen und gerendert wird, muss ein Ladesymbol angezeigt werden.
openlayers
layers
events
loading
Mariam Malak
quelle
quelle
Antworten:
Angenommen, Sie verwenden eine
ol.layer.Vector
mit einer,ol.source.GeoJSON
dann können Sie so etwas verwenden:Hier sehen Sie, wie Sie eine Benachrichtigung erhalten, wenn die Vektorquelle geladen wird. Es funktioniert nur mit Quellen, von denen geerbt wird
ol.source.StaticVector
. Beispiele hierfür sindol.source.GeoJSON
undol.source.KML
.Beachten Sie auch, dass dieser Code möglicherweise in Zukunft nicht mehr funktioniert, wenn ol3 eine konsistente Methode bietet, um festzustellen, ob / wann eine Quelle geladen wurde.
quelle
vectorSource.once('change', function(e){...}
?In ol3 Version 3.10.0 haben sich die Dinge geändert. Ist also klarer als ältere Versionen aber immer noch komplizierter als ol2.
Für TILE-Ebenen (ol.layer.Tile) sollte Ihr Code-Ausschnitt also so aussehen:
Während für WMS-Schichten der Ansatz etwas anders ist:
Bei WFS-Vektorebenen sind die Dinge noch komplizierter:
Überprüfen Sie diesen Beitrag. Es hat alle oben genannten + eine Geige für die WFS-Vektorebenen
quelle
Ich habe die Klasse nicht gefunden
ol.source.GeoJSON
und konnte keinen Fall finden, in demvectorSource.getState() != 'ready'
. Also habe ich so etwas gemacht:quelle
Sie können auch die Funktion getState () verwenden
quelle
source.getState()
In OL 4.5.0 habe ich für Vektorebenen keine Möglichkeit gefunden, mit der Quelle umzugehen. Stattdessen verwende ich für die Ebenenereignisse Folgendes:
Hoffe es kann helfen.
quelle