繁体   English   中英

如何从geojson为mapbox GL获取'line-dasharray'值

[英]How to get 'line-dasharray' value from geojson for mapbox GL

我正在尝试通过 ['get', 'line-dasharray'] 获取值,但出现错误

这是我的代码

var data = {
          'type': 'FeatureCollection',
          'features': [
 {
              'type': 'Feature',
              'geometry': {
                'type': 'LineString',
                'coordinates': []
              },
              'properties': {
                'route_id': 300,
                'route_url': 'http://test.com/file.gpx',
                'line-color': '#426d7e',
                'line-width':     3,
                'line-opacity':   1,
                'line-dasharray': [5, 2]
              },
            },
]
    }

// some code



              map.addSource('locations-rote', {
                type: 'geojson',
                data: data,
                generateId: true
              });

map.addLayer({
                  'id': 'route-coordinates',
                  'type': 'line',
                  'source': 'locations-rote',
                  'layout': {
                    'line-join': 'round',
                    'line-cap': 'round'
                  },
                  'paint': {
                    'line-color': ['get', 'line-color'],
                    'line-width': ['get', 'line-width'],
                    'line-opacity': ['get', 'line-opacity'],
                    'line-dasharray': ['get', 'line-dasharray']
                  }
                });

我尝试使用数组表达式 - https://docs.mapbox.com/mapbox-gl-js/style-spec/expressions/#types-array但也出现错误。 告诉我如何解决问题。

尽管您没有指定您得到的错误是什么,但您可能会看到类似于以下内容的情况:

Error: layers.route-coordinates.paint.line-dasharray: data expressions not supported

如 SDK 支持此处line-dasharray文档中所示,这是因为数据驱动的样式(即使用表达式来确定属性的值以及从源数据派生的信息)尚不支持 GL JS 的line-dasharray属性。

如果您想根据不同的属性对虚线设置不同的样式,则可以通过应用过滤器创建几个不同的图层来引用此源数据。

Mapbox 在 2.3.0 版上支持数据驱动属性“line-dasharray”。 您可以更新 sdk 版本。

有关详细信息,请参阅github 问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM