我创建了一个自定义圈子图层。我想只在水面而不是陆地上展示这一层。我设法使用下面的命令做相反的事情(即:在陆地上而不是在水面上显示图层)。 Refer this image for better understanding
map.moveLayer('多边形''水&#39);
现在我需要知道mapboxgl使用的land层,以便我可以调用函数map.moveLayer('polygon','land');
来实现我想要的。
我需要帮助才能找到mapboxgl-streets地图中的不同图层。但不幸的是,Mapboxgl没有map.eachLayer函数。
答案 0 :(得分:26)
您可以使用Map#getStyle
方法获取整个样式的序列化表示,包括图层。
map.getStyle().layers
答案 1 :(得分:1)
这取决于您使用的地图样式。通常,您必须查看其源或在Mapbox Studio中加载它以识别正确的图层名称。还要关注https://github.com/mapbox/mapbox-gl-js/issues/4173。
答案 2 :(得分:1)
只是为了补充 Lucas 的答案(仍然是正确的),map.getStyle().layers
提供了样式中的所有图层,包括您明确添加的图层(通过 map.addLayer()
),以及包含在风格(可能很多)。小心你如何过滤这些。就我而言,我创建了数组来保存我自己创建的层,以使以后的迭代更简单。