Mapbox GL-数据驱动的文本偏移样式

时间:2018-10-09 07:22:14

标签: javascript mapbox-gl-js mapbox-gl

我需要计算Mapbox GL图层中text-offset布局属性的值。该计算涉及sincos计算,但是由于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运算符可用于常规数组,但不能与表达式数组一起使用,因为此示例在删除sincos函数时起作用:

"text-offset": [
    "literal", [5, 10]
]
// works but doesn't use Math operations, which are needed in my case

如果我需要对x布局属性的ytext-offset部分执行单独的计算,正确的语法是什么?谢谢。

0 个答案:

没有答案