OpenLayers 2 ma te zdarzenia warstw „loadstart & loadend”.
Co im odpowiada w OpenLayers 3?
Podczas gdy warstwa wektorowa ładuje się i jest renderowana, muszę pokazać ikonę ładowania.
openlayers
layers
events
loading
Mariam Malak
źródło
źródło
Odpowiedzi:
Zakładając, że używasz
ol.layer.Vector
zol.source.GeoJSON
, możesz użyć czegoś takiego:To pokazuje, jak uzyskać powiadomienie, gdy źródło wektora jest załadowane. Działa tylko ze źródłami dziedziczącymi z
ol.source.StaticVector
. Przykłady obejmująol.source.GeoJSON
iol.source.KML
.Zauważ też, że ten kod może już nie działać w przyszłości, gdy ol3 zapewni spójny sposób sprawdzania, czy / kiedy ładowane jest źródło.
źródło
vectorSource.once('change', function(e){...}
?W wersji OL3 3.10.0 wszystko się zmieniło. Jest to bardziej przejrzyste niż starsze wersje, ale wciąż bardziej skomplikowane niż ol2.
Zatem dla warstw TILE (ol.layer.Tile) fragment kodu powinien wyglądać następująco:
podczas gdy w przypadku warstw WMS podejście jest nieco inne:
W przypadku warstw WFS Vector sprawy są jeszcze bardziej skomplikowane:
sprawdź ten post. ma wszystkie powyższe + skrzypce dla warstw wektorowych WFS
źródło
Nie znalazłem klasy
ol.source.GeoJSON
i nie mogłem znaleźć przypadku, w którymvectorSource.getState() != 'ready'
. Więc skończyło się na zrobieniu czegoś takiego:źródło
można również użyć getstate () funkcji
źródło
source.getState()
zawsze zwraca „gotowy”Na OL 4.5.0 dla warstw wektorowych nie znalazłem sposobu na radzenie sobie ze źródłem, zamiast tego używam następujących zdarzeń zdarzeń:
Mam nadzieję, że to może pomóc.
źródło