从Map GL中具有多种类型的GeoJSON文件渲染FeatureCollection

时间:2016-04-28 19:34:17

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

我们目前正在从geojson数据中将图层加载到mapbox GL中。如果我们的geojson有一个包含点和多边形的特征集合,那么由于你需要如何设置图层类型,似乎没有办法让mapbox gl显示。

有没有办法让图层有多种类型?似乎它无法处理多个。

   map.addLayer({
    "id": "route",
    "type": "line", //THIS SEEMS TO BE THE LIMITATION
    "source": "route",
   });

1 个答案:

答案 0 :(得分:4)

你是对的,GL JS无法处理每层多种类型。

但是,您可以通过创建多个图层从单个来源显示多种几何类型:

map.addLayer({
    "id": "route-line",
    "type": "line",
    "source": "route",
    "filter": ["==", "$type", "LineString"]
});

map.addLayer({
    "id": "route-point",
    "type": "circle",
    "source": "route",
    "filter": ["==", "$type", "Point"]
});

map.addLayer({
    "id": "route-fill",
    "type": "fill",
    "source": "route",
    "filter": ["==", "$type", "Polygon"]
});