2016-05-03 214 views
0

我尝试在Mapbox GL内重现下面的捕获。颜色是为了可读性而添加的,但是可以自定义颜色并不是强制性的。关键的方面是不同的线路权重。mapbox gl geojson风格

MWE mapbox js

我在Mapbox GL herethere阅读造型。添加尽可能多的样式图层以确保不同的权重不是一种选择。我用两千个LineStrings试了一下,表演不能接受。

我已经抓取了mapbox GL中数据驱动样式的几个github问题there,但我无法弄清楚我需要的是在路线图上。

低于GEOJSON的MWE,我用它来生成上面的图像。

{ 
    "type": "FeatureCollection", 
    "features": [ 
    { 
     "geometry": { 
     "type": "LineString", 
     "coordinates": [[2.3420237, 48.9437736], 
         [2.3430249, 48.9462233], 
         [2.3428777, 48.9469687]] 
     }, 
     "type": "Feature", 
     "properties": { 
     "color": "#0000FF", 
     "weight": 5 
     } 
    }, 
    { 
     "geometry": { 
     "type": "LineString", 
     "coordinates": [[2.3880359, 48.9077387], 
         [2.3885364, 48.9072262], 
         [2.3886376, 48.9071376], 
         [2.3891088, 48.9066521]] 
     }, 
     "type": "Feature", 
     "properties": { 
     "color": "#FF0000", 
     "weight": 15 
     } 
    } 
    ] 
} 

回答

0

有上加入了造型从GeoJSON的一个lineString文档here。下面是一个演示了地图上的两个线串有两个不同的重量/颜色另外的例子:http://bl.ocks.org/tristen/5f807d44726b401b727f3ab06c7ed864

我有两千的LineString和性能试了一下是不能接受的。

成千上万个点的更高性能数据格式是将您的GeoJSON转换为vector tiles。有一个使用Mapbox GL JS在地图上添加矢量图块图层的示例:https://www.mapbox.com/mapbox-gl-js/example/vector-source/

+0

感谢您的示例,我已经测试了这种方法,结果性能不佳。我会尝试使用矢量图块。与此同时,你知道是否有(是/将会)直接从geojson中读取线样式属性的方法吗? –

+0

目前不与'lineString'几何类型,但这将很快改变[数据驱动样式](https://github.com/mapbox/mapbox-gl-js/issues/2430)。很快你就可以使用每个'properties'对象中定义的值来定义线类型的paint属性。 – tristen