如何设置;“文本字体”;使用mapbox表达式

如何设置;“文本字体”;使用mapbox表达式,mapbox,mapbox-gl-js,mapbox-gl,mapbox-expressions,Mapbox,Mapbox Gl Js,Mapbox Gl,Mapbox Expressions,我正试图通过“字体大小”字段中的映射框表达式来设置字体。 这对我不起作用(“文本字体”的数据表达式无效。输出值必须作为文本包含在表达式中) 所以我想从text\u font:[“opensans Semibold Italic”]中获取一个文本字体,如果它是空的,就像 text\u字体:“使用['DIN Offc Pro Italic','Arial Unicode MS Regular'] 谢谢我认为错误消息告诉了您需要知道的内容,但不想听到: “文本字体”的数据表达式无效。输出值必须作为文本

我正试图通过“字体大小”字段中的映射框表达式来设置字体。 这对我不起作用(“文本字体”的数据表达式无效。输出值必须作为文本包含在表达式中)

所以我想从
text\u font:[“opensans Semibold Italic”]
中获取一个文本字体,如果它是空的,就像
text\u字体:“
使用
['DIN Offc Pro Italic','Arial Unicode MS Regular']

谢谢

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

“文本字体”的数据表达式无效。输出值必须作为文本包含在表达式中

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

因此,您可以这样做作为解决方法:

“文本字体”:[
“匹配”、[“获取”、“文本”],
“Open Sans Semibold Italic”、[“literal”、[“Open Sans Semibold Italic”],
“Arial”、[“literal”、[“Arial”],
//…所有可能的值。。。
['literal'、['DIN Offc Pro Italic'、'Arial Unicode MS Regular']
]
],

那“分支标签必须是数字或字符串”呢?这意味着分支标签必须是数字或字符串。因此,要使这项工作正常进行,要么匹配字体数组的第一个元素,要么不要将字体描述为数组。谢谢。但是,如果我在功能属性中有一个
“text\u font\u for\u poi\u label”:“Open Sans Semibold Italic”
,您能举个例子吗?我得到的分支标签必须是数字或字符串错误太多
 "text-font":  [
      "case",
      ['!=', ["get", "text_font"], ""],
      ["get", "text_font"],
      ['literal',['DIN Offc Pro Italic', 'Arial Unicode MS Regular']]
  ],