I struggle with not very complicated issue, I need get average values on my cluster features. Without cluster it's OK, I get the value but how to get value in cluster set?
with cluster value: feature.get('tzewn')[i]
– is undefined
without cluster value: feature.get('tzewn')
– is ok.
My style function:
var s_t_zew = function(feature, resolution) {
var fGet;
var size = feature.get('features').length;
for(var i=0; i<size; i++){
//function isCluster(feature) { if (!feature || !feature.get('features')) { return false; }
fGet += **feature.get('tzewn')[i]**; <--- it's undefined
console.log('i: '+i+', '+size+' '+ ', 'fGet);
//}
}
..
fGet = fGet/size;
...
text: fGet.toString(),
...
}
My GeoJSON:
parseResponse({"type":"FeatureCollection","totalFeatures":1314,"features":[{"type":"Feature","id":"v_wezel_tzewn.fid--7639626f_157c2088d0c_7c7e","geometry":{"type":"Point","coordinates":[2572380.517,7010401.8134]},"geometry_name":"geom","properties":{"gis_id":13176,"tzewn":3.5,"bbox":[2572380.517,7010401.8134,2572380.517,7010401.8134]}},
... }
How to get value on cluster features?
feature.get('tzewn')[i]
doesn't work – Cannot read property '0' of undefined,
parseFloat(feature.valueOf('tzewn')[i])
doesn't work – get NaN
In OpenLayers 2 this works well:
sumValue += parseFloat(feature.cluster[i].attributes.tzewn)
Best Answer
Use
feature.get('features')[i].get('tzewn')