You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在interpolate中使用get表达式导致text-translate失效,求原因分析

问题原因及解决方法

问题出在你把get表达式嵌套在了literal里面——literal的作用是定义静态字面量值,它内部只能放固定的常量,不能引用动态的数据源属性(比如get这种会随要素变化的表达式),所以当你在literal里用get时,整个表达式会因不符合语法规则而失效。

你需要把包裹动态内容的literal去掉,直接返回包含get的数组即可,因为interpolate的输出本身支持动态计算的数组,不需要用literal来包裹动态内容。

修正后的代码示例:

'text-translate': [
  'interpolate',
  ['exponential', 2],
  ['zoom'],
  0,
  [0, 0],
  20,
  [0, ['get', NAME_OF_PROPERTY]]
],

如果想明确区分静态值,也可以只给静态部分保留literal,动态部分直接用表达式:

'text-translate': [
  'interpolate',
  ['exponential', 2],
  ['zoom'],
  0,
  ['literal', [0, 0]],
  20,
  [0, ['get', NAME_OF_PROPERTY]]
],

这样interpolate在缩放级别20时,就能正确获取要素的NAME_OF_PROPERTY属性值作为Y轴偏移量,text-translate功能也能正常工作了。

内容的提问来源于stack exchange,提问作者Jesús Rodríguez Pérez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 12:04:55