Кто-нибудь знает, как получить число для количества объектов, присутствующих в векторном слое OL3?Как получить количество векторных элементов внутри векторного слоя в открытых слоях 3
Мой векторный слой определяется следующим образом, я хотел бы знать, сколько элементов он имеет, и, в идеале, сколько в настоящее время оказывается:
var styleCache = {};
var WFS_layer_Traffic_Lights = new ol.layer.Vector({
source : new ol.source.GeoJSON({
projection : 'EPSG:3857',
url : "Vector_Data/Traffic_Lights_Bordeaux.geojson"
}),
style : function(feature, resolution) {
var path;
var x_anchor;
var y_anchor;
if(resolution < 4){
path = 'Icons/Traffic_Lights_Sign_Icon_Small.png';
x_anchor = 23;
y_anchor = 90;
}
if(resolution >= 4 && resolution < 10){
path = 'Icons/Traffic_Lights_Sign_Small.png';
x_anchor = 16;
y_anchor = 16;
}
if(resolution >= 10){
path = 'Icons/Traffic_Lights_Sign_Tiny.png';
x_anchor = 10;
y_anchor = 10;
}
if (!styleCache[path]) {
styleCache[path] = [new ol.style.Style({
fill : new ol.style.Fill({
color : 'rgba(255, 255, 255, 0.1)'
}),
stroke : new ol.style.Stroke({
color : '#319FD3',
width : 1
}),
image: new ol.style.Icon(({
anchor: [x_anchor, y_anchor],
anchorXUnits: 'pixels',
anchorYUnits: 'pixels',
src: path
})),
text : new ol.style.Text({
font : '12px Calibri,sans-serif',
text : "",
fill : new ol.style.Fill({
color : '#000'
}),
stroke : new ol.style.Stroke({
color : '#fff',
width : 4
})
}),
zIndex : 1
})];
}
return styleCache[path];
}
});
Спасибо, вы ответили на два вопроса в одном для меня, потому что мне было интересно, как я собираюсь разобраться с асинхронным характером потока запроса Ajax, как только мне сказали, как получить количество функций. Такой замечательный ответ Хотя мне было интересно ... –
Как уже упоминалось в последней части вопроса, мне было интересно узнать, может ли я получить количество отображаемых элементов? Еще раз спасибо. –
Вы можете использовать 'view.calculateExtent (map.getSize)', чтобы получить текущую длину представления и 'vectorSource.getFeaturesInExtent', чтобы получить возможности для этой цели. Но это не пуленепробино, потому что оно не даст вам правильного результата при повороте представления из-за проблемы в 'calculateExtent' и потому, что, возможно, объекты, которые находятся вне масштаба, но все еще видны на карте (потому что они например, с большими символами). Поэтому используйте это с осторожностью. – erilem