我如何根据geoJSON属性的最大值进行插值。使用Mapbox绘画,圆形,数据驱动的表达式

问题描述 投票:0回答:1

我正在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中的属性设置数据点的圆圈颜色。我的目标是将圆圈涂成绿色以得到较低的值,然后...

javascript mapbox mapbox-gl-js
1个回答
0
投票

您的第一个问题是,您似乎错误地使用了var,这弄乱了您的语法。您似乎不需要它,所以为什么不这样做:

© www.soinside.com 2019 - 2024. All rights reserved.