Мне нужно вычислить значение свойства макета text-offset
в слое Mapbox GL.Вычисления включают в себя вычисления 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
?Спасибо.