挤出面图层
挤出面(fill-extrusion) 通常用来实现3D建筑,详见示例。
fill-extrusion图层支持 vector 和 geojson 两种类型的数据源,所需的数据内容为面几何并附带高度属性;如下例所示:
map.addSource('floorplan', {
'type': 'geojson',
'data': './data/indoor-3d-map.geojson'
});
map.addLayer({
'id': 'room-extrusion',
'type': 'fill-extrusion',
'source': 'floorplan',
'paint': {
'fill-extrusion-color': ['get', 'color'],
'fill-extrusion-height': ['get', 'height'],
'fill-extrusion-base': ['get', 'base_height'],
'fill-extrusion-opacity': 0.5
}
})
1、id
id 表示该图层的唯一标识,值为字符串;
2、type
type 表示该图层的类别,extrusion 图层 type 属性的值为"fill-extrusion";
3、source
source 表示该图层所使用的数据源的唯一标识 ID,也可以是一个符号要求的数据源规格说明。
4、source-layer
source-layer 为 vector 类型数据源中所使用的图层数据的唯一标识;如果使用的数据源类型为 geojson,该参数不需要设置;
5、layout
extrusion 图层的 layout 中包含的属性只有 visibility,值为"visible"表示该图层显示,为"none"表示该图层不显示;默认值为"visible";
6、paint
extrusion 图层的 paint 中包含的属性有:
(1) “fill-extrusion-color”:表示建筑物面的填充颜色,值可以是 rgb 值,也可以是十六进制颜色值;支持函数对象语句;
(2) “fill-extrusion-opacity”:表示建筑物面颜色的不透明度,与’extrusion-color’搭配使用,值域为[0,1],默认值为 1;支持函数对象语句;
(3) “fill-extrusion-pattern”:表示建筑物面填充的纹理,值为图标标识名称,图标的长、宽值必须为 2 的倍数;
(4) “fill-extrusion-translate”:表示建筑物面的几何偏移,值为数组[x,y],x 若为正值,表示向右,负值表示向左,y 若为正值,表示向上,负值表示向下;
(5) “fill-extrusion-translate-anchor”:表示建筑物的偏移锚点,需要’extrusion-translate’值存在,否则无效,值为"map"或"viewport",默认值为"map";
(6) “fill-extrusion-base”:表示建筑物的基础高度,值必须大于等于 0,默认值为 0;
(7) “fill-extrusion-height”:表示建筑物的相对高度,最终的建筑物渲染高度由基础高度值和该参数值决定,值必须大于等于 0,默认值为 0;支持函数对象语句;
7、minzoom
图层可展示的最小缩放等级值,选填项。
8、maxzoom
图层可展示的最大缩放等级值,选填项。
9、filter
所使用数据源的 features 数据的过滤条件,选填项。