我需要计算Mapbox GL图层中text-offset
布局属性的值。该计算涉及sin
和cos
计算,但是由于text-offset
属性需要2个值的数组,因此我无法弄清表达式的语法。
这是我要完成的工作的简化示例:
"text-offset": [
["sin", 5], // x offset, hard-coded example
["cos", 10] // y offset, hard-coded example
]
// wanted result: [-0.9589242746631385, -0.8390715290764524]
这会产生错误number expected, array found
,因为它违反了表达式数组必须以定义表达式类型的字符串开头的规则。
将数组包装在literal
中也无济于事:
"text-offset": [
"literal", [
["sin", 5],
["cos", 10]
]
]
// wanted result: [-0.9589242746631385, -0.8390715290764524]
抛出的错误是:Expected array<number, 2> but found array<value, 2> instead.
似乎literal
运算符可用于常规数组,但不能与表达式数组一起使用,因为此示例在删除sin
和cos
函数时起作用:
"text-offset": [
"literal", [5, 10]
]
// works but doesn't use Math operations, which are needed in my case
如果我需要对x
布局属性的y
和text-offset
部分执行单独的计算,正确的语法是什么?谢谢。