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 函数之类的东西。
目前,我正在手动设置停止值,但我的 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 函数之类的东西。