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

时间:2019-04-15 16:12:14

标签: 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, 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]

是否缺少一些使表达式正常运行的东西?

感谢您抽出宝贵的时间阅读本文档以及您可以提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

"layout": {
  "icon-image": "{icon}",
  "icon-offset": [
    "case",
    ["==", ["get", "icon"], "marker_purple"],
    ["literal", [5, -19]],
    ["literal", [0, 0]]
  ]
}

数组值需要“文字”表达式运算符。