У меня есть GeoJSON загрузку в векторном слое OpenLayers 3Как получить функции от загрузки geoJson?
var countriesLayer = new ol.layer.Vector({
source: new ol.source.Vector({
url: '/data/countriesandstates.geojson',
format: new ol.format.GeoJSON()
}),
style: function (feature, resolution) {
countriesLayerTextStyle.getText().setText(resolution < 5000 ? feature.get('name') : '');
return [countriesLayerStyle,countriesLayerTextStyle];
}
});
Я хочу, чтобы пробегать все функции в этом источнике, используя
countriesLayer.getSource().forEachFeature(...);
Однако он никогда не называет свою функцию обратного вызова, и если я попробую getFeatures(), я получу пустой массив. Однако он отлично выглядит, поэтому я знаю, что данные загружены. Я даже попытался сделать через 5 секунд таймаут, чтобы убедиться, что он загружен и проанализирован.
Что я делаю неправильно?
Спасибо! Моя проблема заключалась также в том, что я дважды строил слой (и, следовательно, не загружал тот, на который я смотрел, думаю). – MrPurpleStreak
Как только это называется, кажется, что все функции теперь есть - есть ли способ получить одно «загруженное» событие? – MrPurpleStreak
@MrPurpleStreak вы можете использовать 'once' вместо' on'. –