使用Mapbox GL JS表达式设置图标偏移

使用Mapbox GL JS表达式设置图标偏移,mapbox,mapbox-gl-js,mapbox-gl,Mapbox,Mapbox Gl Js,Mapbox Gl,我试图只为一个名为“marker_purple”的图标设置一个[5,-19]的图标偏移量,而所有其他图标的偏移量都是[0,0]。我的尝试导致给定层没有显示图标。此图层只有点几何图形类型,并且有许多不同的图标类型 我所尝试的: "layout": { "icon-image": "{icon}", "icon-offset": [ "case", ["==", ["get", "icon"], "marker_purple"], [5, -19], [0,

我试图只为一个名为“marker_purple”的图标设置一个[5,-19]的图标偏移量,而所有其他图标的偏移量都是[0,0]。我的尝试导致给定层没有显示图标。此图层只有点几何图形类型,并且有许多不同的图标类型

我所尝试的:

"layout": {
  "icon-image": "{icon}",
  "icon-offset": [
    "case",
    ["==", ["get", "icon"], "marker_purple"],
    [5, -19],
    [0, 0]
  ]
}
我还尝试了以下方法,以防表达式无法返回数组,但仍然没有显示图标

"layout": {
   "icon-image": "{icon}",
   "icon-offset": [
      [
         "case",
         ["==", ["get", "icon"], "marker_purple"],
         5,
         0
      ],
      [
         "case",
         ["==", ["get", "icon"], "marker_purple"],
         -19,
         0
      ]
    ]  
 }
如果我在没有表达式的情况下指定偏移量,则一切都会正常工作

"icon-offset": [10,10] 
所有图标移动[10,10]

要使表达式正常工作,我是否缺少一些东西

我很感谢你花时间阅读这篇文章,以及你能提供的任何帮助

"layout": {
  "icon-image": "{icon}",
  "icon-offset": [
    "case",
    ["==", ["get", "icon"], "marker_purple"],
    ["literal", [5, -19]],
    ["literal", [0, 0]]
  ]
}
数组值需要“literal”表达式运算符