You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mapbox嵌套表达式配置求助:多条件图标显示逻辑问题

解决Mapbox表达式多层条件判断的问题

没问题,你需要用嵌套的case表达式来实现这三层逻辑判断,原来的写法只做了单层条件判断,把内层判断嵌套进去就能满足需求了。

下面是符合你要求的正确表达式:

"icon-image": [
  "case",
  // 第一层判断:matched是否为"True"
  ["==", ["get", "matched"], "True"],
  // 当matched为True时,进入第二层判断
  [
    "case",
    // 判断vehicle和standstill_vehicle是否匹配
    ["==", ["get", "vehicle"], ["get", "standstill_vehicle"]],
    "greenmarker", // 匹配时显示的图标
    "orangemarker" // 不匹配时显示的图标
  ],
  "redmarker" // matched为False时显示的图标
]

逻辑拆解:

  • 首先检查matched字段是否等于字符串"True"(如果你的matched是布尔类型,直接写["get", "matched"]即可,不用和"True"字符串比较)
  • 当matched为True时,嵌套一个case做二次判断:
    • 若vehicle和standstill_vehicle的值相等,显示greenmarker
    • 不相等则显示orangemarker
  • 当matched不为True时,直接显示redmarker

这样就完美覆盖了你需要的三种显示场景啦~

内容的提问来源于stack exchange,提问作者BeeNag

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:47:52