目前,我正在手动设置停靠点,但是我的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函数的方法。
关于javascript - MAPBOX-如何在数据驱动样式中使用GeoJSON中的要素的最小值和最大值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46604668/