所以基本上我有几百个包含geom的功能。我希望地图能够聚集不同颜色的点。
这是功能和颜色:
//so both features and color contain several hundred of value
features.push(new ol.Feature(new ol.geom.Point([random_x, random_y])));
color.push(random_color)
然后使用每个特征[i],它应该在地图中显示颜色[i]。 这是目前正在使用的代码,仅显示一种颜色,我应该如何更改以让每个点显示自己的颜色,它仍然可以保持聚类功能?请帮忙。
var source = new ol.source.Vector({
features: features
});
var clusterSource = new ol.source.Cluster({
distance: 40,
source: source
});
var styleCache = {};
var clusters = new ol.layer.Vector({
name: 'clusterlayer',
source: clusterSource,
style: function(feature) {
var size = feature.get('features').length;
var style = styleCache[size];
if (!style) {
style = [new ol.style.Style({
image: new ol.style.Circle({
radius: 10,
fill: new ol.style.Fill({
color: '#000000'
})
}),
text: new ol.style.Text({
font: 'bolder',
text: size.toString(),
fill: new ol.style.Fill({
color: '#000000',
})
})
})];
styleCache[size] = style;
}
return style;
}
});
this.state.map.addLayer(clusters);
对于更高级的工作,我该怎么做才能说出一个红色和蓝色的圆点,当聚类时,它会出现像绿色圆圈这样的东西。
答案 0 :(得分:0)
您可以看一下此示例http://viglino.github.io/ol-ext/examples/map/map.clustering.html。
根据包含的圆形切割圆形以反映颜色。