mapbox 中的嵌套表达式
nested expression in mapbox
我在 mapbox 地图中使用了一个表达式来决定要显示哪个图标。它看起来像这样:
"icon-image": [
"case",
["==", ["get", "matched"], "True"],
"greenmarkertick",
"redmarkercross",
]
我需要向这个表达式添加另一个条件,因为匹配时为真但其他条件不匹配,在这种情况下:
["!=", ["get", "vehicle"], ["get", "standstill_vehicle"]]
我试过将其直接添加到我的 case 表达式中,如下所示:
"icon-image": [
"case",
["==", ["get", "matched"], "True"],
"greenmarker",
["!=", ["get", "vehicle"], ["get", "standstill_vehicle"]],
"orangemarker",
"redmarker",
]
但这没有用。
基本上我需要的是一个表达式来检查 matched
属性 是否为真,然后检查车辆属性是否匹配。
如果它们确实显示绿色标记,如果它们不显示橙色标记。如果 matched
为假,则应显示红色标记。
如有任何帮助,我们将不胜感激。
我意识到 case
表达式中表达式的位置很重要。所以,我用以下表达式解决了我的问题:
"icon-image": [
"case",
["all", ["==", ["get", "matched"], "True"], ["!=", ["get", "vehicle"], ["get", "standstill_vehicle"]]],
"orangemarker",
["==", ["get", "matched"], "True"],
"greenmarker",
"redmarker",
]
我在 mapbox 地图中使用了一个表达式来决定要显示哪个图标。它看起来像这样:
"icon-image": [
"case",
["==", ["get", "matched"], "True"],
"greenmarkertick",
"redmarkercross",
]
我需要向这个表达式添加另一个条件,因为匹配时为真但其他条件不匹配,在这种情况下:
["!=", ["get", "vehicle"], ["get", "standstill_vehicle"]]
我试过将其直接添加到我的 case 表达式中,如下所示:
"icon-image": [
"case",
["==", ["get", "matched"], "True"],
"greenmarker",
["!=", ["get", "vehicle"], ["get", "standstill_vehicle"]],
"orangemarker",
"redmarker",
]
但这没有用。
基本上我需要的是一个表达式来检查 matched
属性 是否为真,然后检查车辆属性是否匹配。
如果它们确实显示绿色标记,如果它们不显示橙色标记。如果 matched
为假,则应显示红色标记。
如有任何帮助,我们将不胜感激。
我意识到 case
表达式中表达式的位置很重要。所以,我用以下表达式解决了我的问题:
"icon-image": [
"case",
["all", ["==", ["get", "matched"], "True"], ["!=", ["get", "vehicle"], ["get", "standstill_vehicle"]]],
"orangemarker",
["==", ["get", "matched"], "True"],
"greenmarker",
"redmarker",
]