具有不同颜色图像的Openlayer聚类

时间:2018-06-19 10:24:44

标签: colors openlayers openlayers-3 layer markerclusterer

所以基本上我有几百个包含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);

对于更高级的工作,我该怎么做才能说出一个红色和蓝色的圆点,当聚类时,它会出现像绿色圆圈这样的东西。

1 个答案:

答案 0 :(得分:0)

您可以看一下此示例http://viglino.github.io/ol-ext/examples/map/map.clustering.html

根据包含的圆形切割圆形以反映颜色。