我有一个 geojson 数据集,其属性“status”的值为 active 或 inactive。我想从这个数据集中创建一个集群图层。根据多数值,这些簇应具有不同的颜色。如果有大部分活跃,则颜色为蓝色,否则颜色为红色。
关于文档,我必须在集群层中设置一个属性以获得如下内容:
this.map.addSource('projects', {
type: 'geojson',
data: myData,
cluster: true,
clusterMaxZoom: 11,
clusterRadius: 20,
clusterProperties: {
dominantStatus: [Expression that returns dominant value in status attribut],
},
});
我完全不知道如何编写返回这种类型结果的表达式。有谁知道怎么办吗
我认为这里的例子给出了一个粗略的方法: https://maplibre.org/maplibre-gl-js/docs/examples/cluster-html/
在
clusterProperties
上添加用于计算 inactive
和 active
项目数量的表达式:
customProperties: {
// Will be negative if there are more inactive statuses than active positive if more active, 0 if there are the same number.
dominantStatus: ['+', ['match', ['get', 'status'], 'inactive', -1, 'active', 1]],
}