# 增加图层的三种写法
提示
以下三种写法效果一样,只是封装程度不同
以增加线图层为例
线数据示例如下
var geoLines = {
"type": "LineString",
"properties":{
"prop0": "value0"
},
"coordinates": [
[
10,
30
],
[
50,
30
],
[
110,
40
]
]
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 写法一
提示
属性用基于kebab-case
写法
map.addSource("lines", {
type: "geojson",
data: geoLines
});
map.addLayer({
id: 'route',
source: 'lines',
type: 'line',
"layout": {
"line-cap": "square", //butt 尖头,round 圆头,square平头
"line-join": "round" //bevel平拐,round 圆拐,miter棱拐
},
"paint": {
"line-width": 20, //宽度
"line-color": "#FF0000", //颜色
"line-opacity": 0.8 //透明度
}})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 写法二
提示
属性用驼峰式大小写,不用区分layout
还是paint
属性,更详细的写法参考数据源和图层
map.addGeoJSONSource("lines", geoLines);
map.addLineLayer("route", "lines", {
lineCap: "square", //butt 尖头,round 圆头,square平头
lineJoin: "round", //bevel平拐,round 圆拐,miter棱拐
lineWidth: 20, //宽度
lineColor: "#FF0000", //颜色
lineOpacity: 0.8 //透明度
})
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 写法三
提示
更进一步简化,封装省了传递sourceID和layerID
let polylines = new vjmap.Polyline({
data: geoLines,
lineCap: "square", //butt 尖头,round 圆头,square平头
lineJoin: "round", //bevel平拐,round 圆拐,miter棱拐
lineWidth: 20, //宽度
lineColor: "#FF0000", //颜色
lineOpacity: 0.8 //透明度
});
polylines.addTo(map);
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9