如何使用用户属性更改 MapboxGL 中的 line-dasharray 设置?
How to change line-dasharray settings in MapboxGL using user properties?
我尝试使用以下代码更改 line-dasharray 设置,
'line-dasharray': [
"case",
['==', ['get', "user_class_id"], 'laneway'],[0.2,2],[0.3,2]
]
它给出了这个错误,
Error: layers.gl-draw-line-active.hot.paint.line-dasharray[2][0]: Expression name must be a string, but found number instead. If you wanted a literal array, use ["literal", [...]].
所以我根据错误提示修改了代码,
'line-dasharray': [
"case",
['==', ['get', "user_class_id"], 'laneway'],['literal',[0.2,2]],['literal',[0.3,2]]
]
它给了我这个错误,
evented.js:136 Error: layers.gl-draw-line-active.hot.paint.line-dasharray: data expressions not supported
有人知道如何解决这个问题吗?
请参阅 https://docs.mapbox.com/mapbox-gl-js/style-spec/#paint-line-line-dasharray 上的 API 文档。不支持 line-dasharray 的数据驱动样式。
此支持在 https://github.com/mapbox/mapbox-gl-js/issues/3045 上有一个未解决的问题,您可以关注它以获取更新。
同时,您可以将此图层拆分为几个具有不同滤镜的图层以获得相同的结果。
我尝试使用以下代码更改 line-dasharray 设置,
'line-dasharray': [
"case",
['==', ['get', "user_class_id"], 'laneway'],[0.2,2],[0.3,2]
]
它给出了这个错误,
Error: layers.gl-draw-line-active.hot.paint.line-dasharray[2][0]: Expression name must be a string, but found number instead. If you wanted a literal array, use ["literal", [...]].
所以我根据错误提示修改了代码,
'line-dasharray': [
"case",
['==', ['get', "user_class_id"], 'laneway'],['literal',[0.2,2]],['literal',[0.3,2]]
]
它给了我这个错误,
evented.js:136 Error: layers.gl-draw-line-active.hot.paint.line-dasharray: data expressions not supported
有人知道如何解决这个问题吗?
请参阅 https://docs.mapbox.com/mapbox-gl-js/style-spec/#paint-line-line-dasharray 上的 API 文档。不支持 line-dasharray 的数据驱动样式。
此支持在 https://github.com/mapbox/mapbox-gl-js/issues/3045 上有一个未解决的问题,您可以关注它以获取更新。
同时,您可以将此图层拆分为几个具有不同滤镜的图层以获得相同的结果。