ol.source.getState()
ne semble pas fiable. Lorsque je l'appelle sur une source vectorielle, il revient prêt, mais les fonctionnalités ne sont pas encore disponibles. Le code ressemble à ceci:
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
Une autre façon de voir si une source vectorielle est prête?
openlayers
johjoh
la source
la source
Réponses:
Vous pouvez fournir votre propre fonction de chargeur et définir des écouteurs personnalisés, comme suit:
Définissez des écouteurs personnalisés:
Et une fonction xhr:
Démo de travail .
la source
Vous pouvez attacher un écouteur à votre vectorSource http://openlayers.org/en/v3.7.0/apidoc/ol.source.Vector.html#once
par exemple
la source
Je me suis retrouvé avec la fonction suivante, pour exécuter du code lorsque la source vectorielle est prête:
Je ne sais pas si le test d'une seule fonctionnalité est fiable, car il se peut que toutes les fonctionnalités ne soient pas disponibles en même temps.
la source