Mapbox GL - Стили, управляемые данными для смещения текста - PullRequest
0 голосов
/ 09 октября 2018

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

...