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
相关产品推荐
相关产品推荐

