如何使用 mapbox 表达式设置 "text-font"

How to set "text-font" with mapbox expressioins

我正在尝试借助 font_size 字段中的 Mapbox 表达式来设置字体。 这对我不起作用(“文本字体”的数据表达式无效。输出值必须作为表达式中的文字包含)

 "text-font":  [
      "case",
      ['!=', ["get", "text_font"], ""],
      ["get", "text_font"],
      ['literal',['DIN Offc Pro Italic', 'Arial Unicode MS Regular']]
  ],

所以我想从 text_font: ["Open Sans Semibold Italic"] 获取文本字体,如果它是空的 text_font: "" 使用 ['DIN Offc Pro Italic', 'Arial Unicode MS Regular'] 谢谢

我认为错误消息是在告诉您您需要知道但不想听到的内容:

Invalid data expression for "text-font". Output values must be contained as literals within the expression.

输出值(即要设置的字体)必须指定为文字 - 不是从功能派生的 属性。

所以你可以做这样的事情作为解决方法:

"text-font":  [
  "match", ["get", "text_font"],
    "Open Sans Semibold Italic", ["literal", ["Open Sans Semibold Italic"]],
    "Arial", ["literal", ["Arial"]],
    // ... all possible values ...
    ['literal',['DIN Offc Pro Italic', 'Arial Unicode MS Regular']]
  ]
],