【问题标题】:How do I outline water with map.addLayer paint?如何使用 map.addLayer 绘制水的轮廓?
【发布时间】:2021-07-08 04:24:39
【问题描述】:

目的:用与地形数据相同的线型,勾勒出水面,暗部。

问题:我可能尝试添加错误的数据或获取错误的层 ID。我在下面提供了我的代码,对于我做错的任何帮助将不胜感激。谢谢。

map.on('load', function () {
    map.addSource('mapbox-terrain', {
        type: 'vector',
        url: 'mapbox://mapbox.mapbox-terrain-v2'
    });
    map.addLayer({
        'id': 'terrain-data',
        'type': 'line',
        'source': 'mapbox-terrain',
        'source-layer': 'contour',
        'layout': {
            'line-join': 'round',
            'line-cap': 'round'
            },
        'paint': {
            'line-color': '#489EA9',
            'line-width': 2
            }
    });
    map.addSource('mapbox-streets', {
        type: 'vector',
        url: 'mapbox://mapbox-streets-v7'
    });
    map.addLayer({
        "id": "water",
        'type': 'line',
        "source": "mapbox-streets",
        "source-layer": "water",
        'layout': {
            'line-cap': 'round',
            'line-join': 'round'
            },
        'paint': {
            'line-color': '#489EA9',
            'line-width': 2
            }
    });

【问题讨论】:

  • 目前还不清楚您要实现什么目标或到目前为止尝试了什么。
  • @SteveBennett 'id': 'terrain-data' 应用了线条样式。我想对水应用相同的样式,以便像地形轮廓一样勾勒出它的轮廓。图中的水是较暗的部分,地形是浅蓝色的线条。

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


【解决方案1】:

解决办法:

 map.addLayer({
    'id': 'water-line-layer',
    'source': 'composite',
    'source-layer': 'water',
    'type': 'line',
    'minzoom': 0,
    'paint': {
        'line-color': '#489EA9',
        'line-width': 2
    }
});

【讨论】:

    猜你喜欢
    • 2021-09-07
    • 2018-07-09
    • 2021-04-14
    • 2013-08-16
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多