mapbox API:如何为“get”表达式设置后备?

gor*_*die 2 mapbox mapbox-gl-js mapbox-expressions

我使用这个表达式来设置图层的线条颜色。

map.addLayer({
  ...
  'paint': {
    'line-color': ['get', 'color'],
  },
  ...
})
Run Code Online (Sandbox Code Playgroud)

但是如果颜色属性没有定义怎么办?有没有办法设置回退值?谢谢。

ria*_*rad 10

您可以使用coalesce表达式(此处的文档)轻松执行此操作,该表达式始终解析为提供的值列表中的第一个非空值。

\n

在您的示例中,这将类似于:

\n
map.addLayer({\n  ...\n  \'paint\': {\n    \'line-color\': [\'coalesce\', [\'get\', \'color\'], \'#00ffff\']\n  },\n  ...\n})\n
Run Code Online (Sandbox Code Playgroud)\n

这里有一个更复杂的示例,该表达式用于确定图标后备。

\n
\n

\xe2\x9a\xa0\xef\xb8\x8f 免责声明:我目前在 Mapbox \xe2\x9a\xa0\xef\xb8\x8f 工作

\n

  • 谢谢 !PS 我认为在 Mapbox 工作不是问题:) (3认同)