图层规格
图层定义数据源中的数据内容在地图上的展现方式,每个图层都必须有唯一的 ID 标识,不能重复。
每个图层都必须要有指定一个数据源类型,图层类型范围如下:
- 背景类型:'background'
- 点几何类型:'circle'、'symbol'、'heatmap'
- 线几何类型:'line'
- 面几何类型:'fill'、'fill-extrusion'
图层规格
添加图层时要指定一个JSON对象,该对象的根级别结构如下:
{
"id": "road-layer-1",
"type": "line",
"source": "RoadSource",
"source-layer": "Road",
"layout": {...},
"paint": {...},
"minzoom": 6,
"maxzoom": 17.5,
"filter": [...]
}
字段说明如下:
属性 | 说明 |
---|---|
id | 图层ID;必填,值唯一,不能重复 |
type | 图层渲染类型,必填 |
source | 所使用的数据源 ID,也可以一个符号要求的数据源规则对象,当图层类型不为 background 时,该值必填 |
source-layer | 所使用的 vector 数据源中的图层标识,当数据源类型为 vector 时,该值为必填项,其他类型不能有该属性 |
layout | 布局属性 |
paint | 绘制属性 |
minzoom | 图层可展示的最小缩放等级值,不设置该参数则地图允许的最小缩放等级内都可显示 |
maxzoom | 图层可展示的最大缩放等级值,不设置该参数则地图允许的最大缩放等级内都可显示 |
filter | 所使用数据源的 features 数据的过滤条件,当数据源 features 数据信息和 filter 条件匹配时图层才显示 |
图层样式操作
map中提供一组方法用来指定或设置图层样式。
获取图层布局的一个具体的样式值:
map.getLayoutProperty('my-layer-id', 'visibility')
设置图层布局的一个具体的样式值:
map.setLayoutProperty('my-layer-id', 'visibility', 'none')
获取图层绘制的一个具体的样式值:
map.getPaintProperty('my-layer-id', 'fill-color')
设置图层绘制的一个具体的样式值:
map.setPaintProperty('my-layer-id', 'fill-color', '#faafee')
设置图层的缩放区间:
map.setLayerZoomRange('my-layer-id', 6, 12)
获取图层的过滤器:
map.getFilter('my-layer-id')
设置图层的过滤器:
map.setFilter('my-layer-id', ['==', 'name', 'myname'])