ol.source.getState()
sepertinya tidak bisa diandalkan. Ketika saya menyebutnya pada sumber vektor, ia kembali siap, tetapi fitur-fiturnya belum tersedia. Kode terlihat seperti ini:
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
Adakah cara lain untuk melihat apakah sumber vektor sudah siap?
openlayers
johjoh
sumber
sumber
Jawaban:
Anda dapat menyediakan fungsi pemuat Anda sendiri dan mengatur beberapa pendengar khusus, seperti berikut:
Tetapkan beberapa pendengar khusus:
Dan fungsi xhr:
Demo kerja .
sumber
Anda dapat melampirkan pendengar ke vectorSource Anda http://openlayers.org/en/v3.7.0/apidoc/ol.source.Vector.html#once
misalnya
sumber
Saya berakhir dengan fungsi berikut, untuk mengeksekusi kode ketika sumber vektor siap:
Saya tidak yakin apakah pengujian untuk satu fitur dapat diandalkan, karena mungkin saja, bahwa tidak semua fitur tersedia secara bersamaan.
sumber