跳至主要內容

添加点线面图层

大约 2 分钟

添加点线面图层

产品介绍

您可以借助【添加点线面图层】功能,您将会在已加载地图上进行点线面数据的添加与移除,并进行图层的简单样式设置。

  • 点线面的添加与移除;
  • 点的简单样式设置,包括:半径、颜色、不透明度、边线颜色等;
  • 线的简单样式设置,包括:颜色、线宽、不透明度等;
  • 面的简单样式设置。包括:颜色、纹理、边线颜色、不透明度等;

场景描述

通过【添加点线面图层】功能,您可以进行Geojson格式的数据加载,在地图中分别添加点、线、面的Geojson格式的数据,进行图层的简单样式的设置与图层移除。

如:

1、商场,12-22级别展示,商场图标展示商场位置,商场图标上方同时显示商场名称。

2、道路数据,0-22级别展示,线宽10px颜色#999999

3、公园用地面数据,10-22级别展示,颜色#088展示;

4、添加学校点数据,移除该数据。

约束限制

该接口创建出来的是XXXXXXXX限制条件说明。

涉及API

地图的加载与显示,需要主要包括加载图片,添加图层,获取图层,移除图层等操作,涉及的API如下:

添加点图层

添加点图层

加载自定义图标,通过配置点图层的样式属性,显示自定义点图标图层,

map.on("load",function () {
    map.loadImage('../../images/mall.png', function(error, image) { //加载自定义图片
        if (error) throw error;
        map.addImage('mall', image);  //将图片加载到地图中
        map.addLayer({      //添加点图层
            "id": "points",  //图层ID
            "type": "symbol",  //图层类型
            "source": {      //数据源
                "type": "geojson",  //数据源类型
                "data": {
                    "type": "FeatureCollection",
                    "features": [{
                        "type": "Feature",
                        "geometry": {
                            "type": "Point",
                            "coordinates": [116.37294243562775,39.90924601715042]
                        }
                    }]
                },
            },
            "maxzoom":22,   //最大缩放等级显示
            "minzoom":12,   //最小缩放等级显示
            "layout": {     //布局样式
                "icon-image": "mall",  //图标图片
                "icon-size": 1, //图标大小
            }
        });
    });
})

添加线图层

通过添加图层addLayer方法,将线图层添加到地图中

map.on('load', function () {
    map.addLayer({
        "id": "route",
        "type": "line",
        "source": {
            "type": "geojson",
            "data": {
                "type": "Feature",
                "properties": {},
                "geometry": {
                    "type": "LineString",
                    "coordinates": [

                        [ 116.35666527738937,39.90701755657048],
                        [ 116.4358922421016,39.90877400635193]

                    ]
                }
            }
        },
        "layout": {   //布局样式
            "line-join": "round",
            "line-cap": "round"
        },
        "paint": {    //绘制样式
            "line-color": "#999999",
            "line-width": 10
        }
    });
});

添加面图层

通过添加图层addLayer方法,将面图层添加到地图中

map.on("load",function () {
    map.addLayer({
        'id': 'maine',
        'type': 'fill',
        'source': {
            'type': 'geojson',
            'data': {
                'type': 'Feature',
                'geometry': {
                    'type': 'Polygon',
                    'coordinates': [[
                        [116.31079544985226,39.894802004868836],
                        [116.31074317619613,39.89093170955451],
                        [116.31114829687385,39.89073117015903],
                        [116.31152728075847,39.890009223491006],
                        [116.31738192814828,39.889628193017074],
                        [116.31889786365184,39.89036017074085],
                        [116.31979958388808,39.892536003556955],
                        [116.31939446321036,39.892646297389575],
                        [116.31930298432957,39.893047364374524],
                        [116.31866263226914,39.89373919942088],
                        [116.31416709944949,39.89510279587037],
                        [116.31245513782278,39.89510279587037],
                        [116.31236365897706,39.89447113324519],
                        [116.3119716066958,39.89442100103676],
                        [116.31118750213346,39.89477192569879],
                    ]]
                }
            }
        },
        'maxzoom':12,
        'minzoom':22,
        'layout': {},
        'paint': {
            'fill-color': '#088',
            'fill-opacity': 0.8
        }
    });
})

移除点线面图层

通过map对象的removeLayer方法,传入图层的ID,进行指定图层的删除

function removeLayer() {
    if(map.getLayer("circle")){
        map.removeLayer("circle")
    }
}
上次编辑于:
贡献者: yangtong