ol.source.getState()
scheint nicht zuverlässig zu sein. Wenn ich es auf einer Vektorquelle aufrufe, wird es bereit zurückgegeben, aber die Funktionen sind noch nicht verfügbar. Code sieht so aus:
var vectorSource = new ol.source.Vector({
url: 'world.topo.json',
format: new ol.format.TopoJSON()
});
// ... init map with vectorSource
console.log(vectorSource.getState()); // returns "ready"
console.log(vectorSource.getFeatureById("US")); // returns null
Gibt es eine andere Möglichkeit, um festzustellen, ob eine Vektorquelle bereit ist?
openlayers
johjoh
quelle
quelle
Antworten:
Sie können Ihre eigene Loader-Funktion bereitstellen und einige benutzerdefinierte Listener wie folgt festlegen:
Stellen Sie einige benutzerdefinierte Listener ein:
Und eine xhr-Funktion:
Arbeitsdemo .
quelle
Sie können einen Listener an Ihre vectorSource http://openlayers.org/en/v3.7.0/apidoc/ol.source.Vector.html#once anhängen
z.B
quelle
Am Ende hatte ich die folgende Funktion, um Code auszuführen, wenn die Vektorquelle bereit ist:
Ich bin mir nicht sicher, ob das Testen auf eine einzelne Funktion zuverlässig ist, da möglicherweise nicht alle Funktionen gleichzeitig verfügbar sind.
quelle