new GroupLayerView(options)
组图层对应的图层视图对象。
GroupLayerView 负责管理一组子图层视图的创建、移除、排序和扁平化访问能力,
是地图业务图层、覆盖物图层和底图图层容器在视图层的核心组织结构。
| Name | Type | Default | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object | {} |
可选
构造参数
|
Example
Create GroupLayerView instance
// ES5 import style
const { GroupLayerView } = zondy
// ES6 import style
import { GroupLayerView } from '@mapgis/webclient-common'
Extends
Members
-
innerViewObject null
-
当前图层视图所属的引擎内部视图对象。
该属性等价于
view.getInnerView()的快捷访问方式,常用于子类在实现底层引擎交互时直接读取内部视图。
Methods
-
_findFlatLayerViewById(id){*}
view/GroupLayerView.js, line 472 -
通过id获取图层视图(扁平化)
Name Type Description id* Returns:
Type Description * -
_findLastLayerViewById(id){*}
view/GroupLayerView.js, line 482 -
查找当前id的下一个图层视图
Name Type Description id* Returns:
Type Description * -
_findLayerViewById(id){*}
view/GroupLayerView.js, line 462 -
通过id获取图层视图
Name Type Description id* Returns:
Type Description * -
_fireLayerCreatedError(layer, layerView, err){*}
view/GroupLayerView.js, line 422 -
图层视图创建失败事件
Name Type Description layerLayer layerViewLayerView err* 错误信息
Returns:
Type Description * -
_fireLayerViewCreated(layer, layerView){*}
view/GroupLayerView.js, line 401 -
图层视图创建完毕事件
Name Type Description layerLayer layerViewLayerView Returns:
Type Description * -
_fireLayerViewCreatedByLayerViews(layerViews){*}
view/GroupLayerView.js, line 381 -
发送子图层创建完毕事件
Name Type Description layerViewsArray.<LayerView> Returns:
Type Description * -
_fireLayerViewRemove(layer, layerView){*}
view/GroupLayerView.js, line 443 -
图层视图移除事件
Name Type Description layerLayer layerViewLayerView Returns:
Type Description * -
inherited _fireLayerViewUpdateEvent(message, updateContent){*}
view/LayerView.js, line 219 -
发送视图更新事件
Name Type Description messageString updateContentUpdateContent | Array.<UpdateContent> Returns:
Type Description * -
_removeLayerViews(){*}
view/GroupLayerView.js, line 228 -
清空全部图层视图
Returns:
Type Description * -
_reorderLayerView(layerView){*}
view/GroupLayerView.js, line 509 -
通过layerView排序(需要保证视图存在)
Name Type Description layerViewLayerView 图层视图
Returns:
Type Description * -
_setItemParent(item, parent){*}
view/GroupLayerView.js, line 358 -
设置item的父级
Name Type Description item* parent* Returns:
Type Description * -
inherited _updateScaleVisible(){*}
view/LayerView.js, line 100 -
更新比例尺可见性
Returns:
Type Description * -
add(layerView, index){Promise.<Array.<LayerView>>}
view/GroupLayerView.js, line 61 -
向当前组图层视图中插入一个子图层视图。
该方法是
addMany的单项封装,适合在已构造好LayerView实例时按指定位置插入。Name Type Description layerViewLayerView 要添加的图层视图对象。
indexNumber 可选 插入位置。未传入时追加到末尾。
Returns:
Type Description Promise.<Array.<LayerView>> 实际添加成功的图层视图数组。 -
addMany(layers, index){Promise.<Array.<LayerView>>}
view/GroupLayerView.js, line 88 -
批量创建并添加多个子图层视图。
该方法会先根据传入图层集合过滤已加载且尚未创建视图的图层, 再按顺序调用视图的图层视图工厂方法完成创建与添加。
Name Type Description layersArray.<Layer> 要添加的图层数组。
indexNumber 可选 图层视图插入位置。未传入时追加到末尾。
Returns:
Type Description Promise.<Array.<LayerView>> 实际添加成功的图层视图数组。 -
inherited checkLayerCanAddedStatus(){Boolean}
view/LayerView.js, line 183 -
检查当前图层视图是否仍然允许被添加到视图中。
在异步创建图层视图的过程中,如果图层已经从父容器移除, 或所属视图已经被销毁,则应放弃继续执行添加逻辑。
Returns:
Type Description Boolean true表示图层仍存在且视图未销毁;否则返回false。 -
onAdd(event){Promise.<GroupLayerView>}
view/GroupLayerView.js, line 46 -
将当前组图层中的全部子图层添加到视图中。
调用后会遍历当前组图层内的子图层,并依次创建、添加对应的子图层视图。
Name Type Description eventLayerEvent 可选 图层事件对象。
Returns:
Type Description Promise.<GroupLayerView> 添加完成后返回当前组图层视图对象。 -
刷新当前图层视图。
默认实现会先执行
onRemove,再执行onAdd, 并通过防抖包装避免高频重复刷新。Returns:
Type Description Promise.<LayerView> 刷新完成后返回当前图层视图对象。 -
onRemove(event){Promise.<GroupLayerView>}
view/GroupLayerView.js, line 319 -
将当前组图层中的全部子图层从视图中移除。
调用后会遍历当前组图层内已创建的子图层视图,并依次执行移除逻辑。
Name Type Description eventLayerEvent 可选 图层事件对象。
Returns:
Type Description Promise.<GroupLayerView> 移除完成后返回当前组图层视图对象。 -
onUpdate(event){Promise.<GroupLayerView>}
view/GroupLayerView.js, line 336 -
将更新事件分发给当前组图层视图中的所有子图层视图。
适用于组图层整体配置变化后,统一驱动子图层视图执行各自的更新逻辑。
Name Type Description eventLayerViewUpdateEvent 图层视图更新事件对象。
Returns:
Type Description Promise.<GroupLayerView> 全部子图层视图更新完成后返回当前组图层视图对象。 -
remove(layerView){Promise.<void>|Promise.<Array.<LayerView>>}
view/GroupLayerView.js, line 75 -
从当前组图层视图中移除一个子图层视图。
该方法是
removeMany的单项封装,适合删除单个已存在的图层视图。Name Type Description layerViewLayerView 要移除的图层视图对象。
Returns:
Type Description Promise.<void> | Promise.<Array.<LayerView>> 移除流程对应的 Promise。 -
removeAll(){Promise.<void>|undefined}
view/GroupLayerView.js, line 262 -
移除当前组图层视图中的全部子图层视图。
适合在组图层整体卸载、底图切换或视图销毁时统一清空当前容器中的所有子图层视图。
Returns:
Type Description Promise.<void> | undefined 移除流程对应的 Promise;当容器不存在时返回 undefined。 -
removeMany(layers){Promise.<Array.<LayerView>>}
view/GroupLayerView.js, line 206 -
批量移除多个子图层视图。
传入的是图层数组而非图层视图数组,方法内部会先定位对应的图层视图, 再执行统一的移除与容器清理流程。
Name Type Description layersArray.<Layer> 要移除的图层数组。
Returns:
Type Description Promise.<Array.<LayerView>> 已完成移除处理的图层视图数组。 -
reorder(layer){void}
view/GroupLayerView.js, line 277 -
根据组图层中的图层顺序调整对应图层视图的显示顺序。
当组图层内部执行图层重排后,可调用该方法同步更新视图侧的渲染顺序。
Name Type Description layerLayer 发生顺序变化的图层对象。
Returns:
Type Description void -
syncLayerViewOrder()
view/GroupLayerView.js, line 294 -
组图层视图内同步