Skip to content

NormalLayer

此类是图层基类,提供基础的图层功能。

构造函数

构造函数描述
BMapGL.NormalLayer(options: object)创建普通图层实例

配置选项

属性类型描述
visibleboolean图层是否可见,默认为true
opacitynumber图层透明度,范围0-1,默认为1
minZoomnumber最小显示级别,默认为0
maxZoomnumber最大显示级别,默认为18
zIndexnumber图层层级,默认为0
enablePickedboolean是否启用拾取,默认为false
autoSelectboolean是否自动选中,默认为false
popEventboolean是否弹出事件,默认为false
pickWidthnumber拾取宽度,默认为0
pickHeightnumber拾取高度,默认为0

实例方法

方法参数返回值描述
onAddmap: Map, gl: GL添加到地图时回调此方法
preRendermap: Map, matrix: Matrix图层渲染前调用
rendergl: GL, matrix: Matrix, opt: Object图层渲染调用,opt.isPickRender 为true,则代表是离屏渲染,计算点击数据
getPickedItemindex: number, model: stringObject | null根据数据索引,获取数据项,通过事件返回。model取值:onmousemove,onclick
afterRendergl: GL, matrix: Matrix图层渲染后调用
onDestroymap: Map, gl: GL图层渲染后调用
onHidemap: Map, gl: GL小于minZoom 或者 大于 maxZoom 会自动调用这个方法
onShowmap: Map, gl: GLonHide状态进入onShow时,会调用这个方法
doOnceDraw触发图层渲染
setZIndexzIndex: number设置图层叠加顺序,如果当前zIndex已使用,替换当前位置,当前位置图层顺次后移
setZIndexTop将当前图层设置为最上层,原位置数据置空
setUpLevel向上移动一层,如果已经是顶层则不移动
setDownLevel向下移动一层,如果已经是低层则不移动
getZIndexnumber获取图层层级
setVisiblevisible: boolean设置图层显示隐藏状态
getVisibleboolean获取图层显示隐藏状态
setOpacityopacity: number设置图层透明度,默认是1,取值范围为0-1
getOpacitynumber获取图层透明度
setMinZoomminZoom: number设置图层最小显示等级
getMinZoomnumber获取图层最小显示等级
setMaxZoommaxZoom: number设置图层最大显示等级
getMaxZoomnumber获取图层最大显示等级
setDatadata: Objectvoid设置图层数据
getDatavoidObject获取图层数据
updateStatestate: Objectvoid更新图层状态
removeStatestate: Objectvoid移除图层状态
clearStatevoidvoid清除图层状态
addDelIndexindex: numbervoid添加删除索引
removeDelIndexindex: numbervoid移除删除索引
clearDelIndexvoidvoid清除删除索引

示例

ts
// 创建普通图层
const layer = new BMapGL.NormalLayer({
  visible: true,
  opacity: 0.8,
  minZoom: 3,
  maxZoom: 18,
  zIndex: 1,
  enablePicked: true,
  autoSelect: false,
  popEvent: true,
  pickWidth: 10,
  pickHeight: 10
});

// 设置数据
const data = {
  // 图层数据
};

layer.setData(data);
map.addLayer(layer);

注意事项

  1. 显示控制:

    • 合理设置显示级别范围
    • 注意图层层级顺序
    • 控制图层透明度
  2. 交互设置:

    • 根据需要启用拾取功能
    • 合理设置拾取区域大小
    • 注意事件处理性能
  3. 性能优化:

    • 大量数据时考虑分批处理
    • 合理使用状态缓存
    • 注意内存占用
  4. 图层生命周期:

    • 注意在onAdd中初始化资源
    • 在onDestroy中清理资源
    • 合理处理onShow和onHide状态
  5. 渲染控制:

    • 实现render方法进行图层渲染
    • 注意渲染性能优化
    • 处理离屏渲染场景
  6. 事件处理:

    • 合理设置enablePicked和autoSelect
    • 注意事件冒泡控制
    • 及时清理事件监听

基于 MIT 许可发布