Mapbox案例表达式

Kon*_*Woj 2 javascript mapbox-gl-js

我尝试使用case表达式设置我的mapbox图层的样式:

const max_expr = ['max', ['get', 'POLY_COLOUR_CODE_D'], ['get', 'POLY_COLOUR_CODE_BW'], ['get', 'POLY_COLOUR_CODE_A']];

'paint': {
        'fill-color': ['case', ['==', max_expr, 1], 'green', ['==', max_expr, 2],  'yellow', 
        ['==', max_expr, 3], 'red', ['==', max_expr, 4], 'red']
}
Run Code Online (Sandbox Code Playgroud)

但我得到以下奇怪的错误:paint.fill-color:预期奇数个参数.你知道如何解决这个问题吗?

Sca*_*ize 9

您可能只是在表达式中缺少默认case:

[
  'case',
  ['==', max_expr, 1],
  'green',
  ['==', max_expr, 2],
  'yellow',
  ['==', max_expr, 3],
  'red',
  ['==', max_expr, 4],
  'red',
  <default>
];
Run Code Online (Sandbox Code Playgroud)

这不是很明显,但文档显示默认值不是可选的:https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-case

  • 非常感谢!他们的文档将从这样的示例中受益! (2认同)