【问题标题】:mapbox gl geojson stylemapbox gl geojson 风格
【发布时间】:2016-05-03 10:17:26
【问题描述】:

我尝试在 Mapbox GL 中重现下面的捕获。添加颜色是为了便于阅读,但能够自定义颜色并不是强制性的。关键方面是不同的线宽。

我读过 Mapbox GL here 和 there 中的样式。添加尽可能多的具有不同权重的样式层不是一种选择。我用两千根线串试了一下,性能不可接受。

我已经抓取了几个关于 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
      }
    }
  ]
}

【问题讨论】:

    标签: geojson mapbox-gl mapbox-gl-js


    【解决方案1】:

    有文档 here 关于从 GeoJSON 添加样式 lineString。下面是一个附加示例,演示了地图上具有两种不同权重/颜色的两个 lineString:http://bl.ocks.org/tristen/5f807d44726b401b727f3ab06c7ed864

    我用两千条线串试了一下,性能不行。

    数千个点的更高效的数据格式是将您的 GeoJSON 转换为 vector tiles。这里有一个使用 Mapbox GL JS 向地图添加矢量切片图层的示例:https://www.mapbox.com/mapbox-gl-js/example/vector-source/

    【讨论】:

    • 感谢您的示例,我已经测试过这种方法,但它最终表现不佳。我将尝试使用矢量图块。同时,您是否知道(现在/将会)有一种方法可以直接从 geojson 中读取线型属性?
    • 目前不使用lineString 几何类型,但很快就会使用data driven styles 进行更改。很快,您将能够使用在每个 properties 对象中定义的值来定位线型的绘制属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    相关资源
    最近更新 更多