我正在React项目中使用Mapbox GL,并希望基于源geoJSON中的属性设置数据点的圆圈颜色。我的目标是将圆圈涂成绿色(低值)和红色(高值)。介于两者之间的将是颜色渐变。因此,例如,如果我的数据点的取值范围是0到100。0应该是绿色,100应该是红色,而50应该是琥珀色。]
这是我尝试过的:
paint: {
'circle-radius': 10,
'circle-color': [
'let',
'maxVal',
['max', ['get', 'P1_H']],
[
'interpolate',
['linear'],
['get', 'P1_H'],
0,
'green',
['var', 'maxVal'],
'red'
]
]
}
但是这给了我错误:
“内插”表达式的输入/输出对必须使用输入的文字数字值(非计算表达式)值。
对我来说,最大的问题是我不知道源数据中的最大值是多少。我可能不知道是20还是80。因此,对数字进行硬编码对我不起作用。最小值可能也会发生变化,但是现在我主要关注最大值。所以我的问题是,如何根据所选属性中具有最高值的特征对圆形颜色进行插值?
我正在React项目中使用Mapbox GL,并希望基于源geoJSON中的属性设置数据点的圆圈颜色。我的目标是将圆圈涂成绿色以得到较低的值,然后...
您的第一个问题是,您似乎错误地使用了var
,这弄乱了您的语法。您似乎不需要它,所以为什么不这样做: