Mapbox GL JS:在图层上方显示地图标签?

时间:2017-03-12 21:12:14

标签: mapbox mapbox-gl-js

我正在使用Mapbox GL JS和Mapbox Streets基础层。我添加了一个带有白色边框和透明填充的多边形图层,但我发现很难读取多边形图层下面的底图标签。查看标签是如何被白色边框覆盖的:

enter image description here

有什么方法可以确保标签位于多边形层的顶部,或至少不被它遮挡?

我的代码如下所示:

var map = new mapboxgl.Map({
    container: 'map',
    style: 'mapbox://styles/mapbox/streets-v9',
    center: [-2.839, 54.579],
    zoom: 4
});
map.on('load', function () {
    map.addSource('constituencies', {
        'type': 'vector',
        'url': 'mapbox://pcsu.xxx'
    });
    var constituencyLayer = map.addLayer({
        'id': 'constituencies',
        'source': 'constituencies',
        'source-layer': 'constituencies',
        'type': 'fill',
        'paint': {
            'fill-color': 'rgba(162,181,205,0.6)',
            'fill-outline-color': 'white'
        },
        'layout': {
            'visibility': 'visible'
        }
    });

1 个答案:

答案 0 :(得分:1)

查看this Mapbox example并使用map.addLayer(layer, [before])的{​​{3}}。如果此图层before存在,则新图层将放置在其之前/之下。我认为参数命名在这里有点令人困惑。

最低标签图层的名称取决于样式。大部分时间你都在寻找housenum-label。在the second argument中还讨论了如何简化此过程,例如引入占位符图层。