MAPBOX - 如何在数据驱动样式中使用 GeoJSON 的最小和最大值特征

MAPBOX- how to use minimum and maximum value of features from GeoJSON in Data Driven Styling

目前,我正在手动设置停止值,但我的 GeoJSON 文件有不同的范围,我每次都必须设置停止值。 是否可以在 map.addLayer 函数中使用 属性 的最小值和最大值?然后把它分成一系列值? 我目前正在解析 GeoJSON 以获得最小值和最大值,我不确定 mapbox 是否提供此功能。

map.addLayer({
    'id': 'heatmap',
    'type': 'circle',
    'source': "sourceGeoJSON",
    paint: {
        'circle-color': { 
        property:'pH',
        stops: [
        [6,'#6879FB'],
        [8,'#68FB75'],
        [9, '#F94B18'], 
        [10, '#F92918']
        ]; 
    },
    'circle-opacity': 1.0
    }
});

Mapbox-GL-JS 不提供任何自动合并功能。在一定范围内创建线性箱非常简单:

phvals = sourceGeoJSON.features.map(f => f.properties.pH);
min = Math.min(...phvals);
max = Math.max(...phvals);
range = max-min;

map.addLayer({
    'id': 'heatmap',
    'type': 'circle',
    'source': "sourceGeoJSON",
    paint: {
        'circle-color': { 
        property:'pH',
        stops: [
        [min,'#6879FB'],
        [min + 1/3*range,'#68FB75'],
        [min + 2/3*range, '#F94B18'], 
        [max, '#F92918']
        ]; 
    },
    'circle-opacity': 1.0
    }
});

要更进一步,请考虑使用简单统计数据包中的 ckmeans 函数之类的东西。