# GroupLayer
查阅Leaflet API

#### new mars2d.layer.GroupLayer(options)
layer/GroupLayer.js 24

图层组 图层

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | Object | 可选 参数对象，包括以下：
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`layers` | L.Layer | Object |  | 可选 子图层列表,支持 `LayerType` 所有图层
`id` | String | Number | `createGuid()` | 可选 图层id标识
`pid` | String | Number | `-1` | 可选 图层父级的id，一般图层管理中使用
`name` | String | `''` | 可选 图层名称
`pane` | String | `'overlayPane'` | 可选 指定图层添加到地图的哪个pane的DIV中，用于控制不同层级显示的，优先级高于zIndex。

##### 参考:

- `支持的事件类型`

### 继承自

- L.LayerGroup

### 属性值

#### 只读 hasChildLayer : Boolean
layer/GroupLayer.js 209

是否有子图层

#### 只读 hasEmptyGroup : Boolean
layer/GroupLayer.js 199

是否空组 ，空组目前就图层管理用于图层分组节点（虚拟节点）。

#### 只读 hasOpacity : boolean
layer/GroupLayer.js 134

是否可以调整透明度

#### 只读 hasZIndex : Boolean
layer/GroupLayer.js 150

是否可以调整图层顺序（在同类型图层间）

#### id : String|Number
layer/GroupLayer.js 93

对象的id标识

#### 只读 isAdded : Boolean
layer/GroupLayer.js 71

是否已添加到地图

#### 只读 length : Number
layer/GroupLayer.js 219

子图层的个数

#### name : String
layer/GroupLayer.js 106

名称 标识

#### opacity : Number
layer/GroupLayer.js 118

透明度

#### pid : String|Number
layer/GroupLayer.js 80

对象的pid标识

#### show : Boolean
layer/GroupLayer.js 178

显示隐藏状态

#### zIndex : Number
layer/GroupLayer.js 164

图层顺序，数字大的在上面。

### 方法

#### addEventParent(obj) → GroupLayer
layer/GroupLayer.js 640

添加抛出事件到父类，它将接收传播的事件

参数名称 | 类型 | 描述信息
--- | --- | ---
`obj` | Object | 父类对象

##### 返回值:

当前对象本身,可以链式调用

#### addLayer(childlayer) → GroupLayer
layer/GroupLayer.js 232

添加图层

参数名称 | 类型 | 描述信息
--- | --- | ---
`childlayer` | L.Layer | 添加的子图层

##### 返回值:

当前对象本身，可以链式调用

#### addTo(map) → GroupLayer
layer/GroupLayer.js 366

将图层添加到地图

参数名称 | 类型 | 描述信息
--- | --- | ---
`map` | Map | 地图对象

##### 返回值:

当前对象本身，可以链式调用

#### bindContextMenu(contextmenuItems) → Map
layer/GroupLayer.js 452

绑定右键菜单

参数名称 | 类型 | 描述信息
--- | --- | ---
`contextmenuItems` | Array.<Object> | 右键菜单数组

##### 返回值:

当前对象本身，可以链式调用

#### bindContextMenu(contextmenuItems) → Map
layer/GroupLayer.js 547

绑定右键菜单

参数名称 | 类型 | 描述信息
--- | --- | ---
`contextmenuItems` | Array.<Object> | 右键菜单数组

##### 返回值:

当前对象本身，可以链式调用

#### bindPopup(content, options) → GroupLayer
layer/GroupLayer.js 385

绑定Popup弹窗配置

参数名称 | 类型 | 描述信息
--- | --- | ---
`content` | String | HTMLElement | function | L.Popup | Popup弹窗内容
`options` | Map.PopupOptions | Object | 可选 Popup弹窗参数

##### 返回值:

当前对象本身，可以链式调用

#### bindTooltip(content, options) → GroupLayer
layer/GroupLayer.js 480

绑定Tooltip弹窗配置

参数名称 | 类型 | 描述信息
--- | --- | ---
`content` | String | HTMLElement | function | L.Tooltip | Tooltip弹窗内容
`options` | Map.TooltipOptions | Object | 可选 Tooltip弹窗参数

##### 返回值:

当前对象本身，可以链式调用

#### clearLayers() → GroupLayer
layer/GroupLayer.js 307

从组中删除所有图层

##### 返回值:

当前对象本身，可以链式调用

#### closePopup() → GroupLayer
layer/GroupLayer.js 415

关闭打开的弹窗

##### 返回值:

当前对象本身，可以链式调用

#### closeTooltip() → GroupLayer
layer/GroupLayer.js 510

关闭打开的弹窗

##### 返回值:

当前对象本身，可以链式调用

#### eachLayer(method, context) → GroupLayer
layer/GroupLayer.js 316

遍历当前的所有子图层

参数名称 | 类型 | 描述信息
--- | --- | ---
`method` | function | 回调方法
`context` | Object | 可选 侦听器的上下文(this关键字将指向的对象)。

##### 返回值:

当前对象本身，可以链式调用

#### fire(type, data, propagate) → void
layer/GroupLayer.js 601

触发指定类型的事件。

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`type` | String | EventType |  | 事件类型
`data` | Object |  | 可选 传输的数据或对象，可在事件回调方法中event对象中获取进行使用
`propagate` | BaseClass | Object | `null` | 可选 将事件传播给父类 (用addEventParent设置)

##### 返回值:

无

#### flyTo(options) → GroupLayer
layer/GroupLayer.js 273

定位地图至当前图层数据区域

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | Object | 可选 定位参数，包括:
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`paddingTopLeft` | L.Point | Array.<Number> |  | 可选 设置在将视图设置为适合边界时不应考虑的地图容器左上角的填充量。如果您在地图上有一些控件重叠式（如侧边栏），而且您不希望它们遮挡您正在缩放的对象，则很有用。
`paddingBottomRight` | L.Point | Array.<Number> |  | 可选 同上，不考虑地图容器右下角时使用。
`padding` | L.Point | Array.<Number> |  | 可选 相当于将左上和右下填充设置为相同的值。
`maxZoom` | Number |  | 可选 最大层级
`animate` | Boolean | `true` | 可选 是否进行动画缩放。false时始终重置视图完全没有动画。
`duration` | Number | `0.25` | 可选 动画平移的持续时间，以秒为单位。
`easeLinearity` | Number | `0.25` | 可选 平移动画宽松的曲率因子 Cubic Bezier curve曲线的第三个参数。1.0表示线性动画，而这个数字越小，曲线越鞠躬。
`noMoveStart` | Boolean | `false` | 可选 如果true，平移不会movestart在启动时触发事件（内部用于平移惯性）。

##### 返回值:

当前对象本身，可以链式调用

#### getContextMenu() → Array.<Object>
layer/GroupLayer.js 462

获取绑定的右键菜单

##### 返回值:

右键菜单数组

#### getContextMenu() → Array.<Object>
layer/GroupLayer.js 557

获取绑定的右键菜单

##### 返回值:

右键菜单数组

#### getLayer(id) → L.Layer
layer/GroupLayer.js 327

获取指定id的图层

参数名称 | 类型 | 描述信息
--- | --- | ---
`id` | Number | 图层id

##### 返回值:

图层

#### getLayerId(layer) → Number
layer/GroupLayer.js 337

获取图层的id

参数名称 | 类型 | 描述信息
--- | --- | ---
`layer` | L.Layer | 图层

##### 返回值:

图层的id

#### getLayers() → Array.<L.Layer>
layer/GroupLayer.js 347

返回添加到组中的所有图层的数组

##### 返回值:

图层数组

#### getPopup() → L.Popup
layer/GroupLayer.js 443

获取当前绑定在图层上的Popup弹窗对象

##### 返回值:

Popup弹窗对象

#### getTooltip() → L.Tooltip
layer/GroupLayer.js 538

获取当前绑定在图层上的Tooltip弹窗对象

##### 返回值:

Tooltip弹窗对象

#### hasLayer() → Boolean
layer/GroupLayer.js 298

判断图层是否存在当前图层组中

##### 返回值:

如果给定图层当前已添加到组中，则返回true。

#### isPopupOpen() → boolean
layer/GroupLayer.js 424

当前绑定的弹窗是是否打开

##### 返回值:

是否打开弹窗

#### isTooltipOpen() → boolean
layer/GroupLayer.js 519

当前绑定的弹窗是是否打开

##### 返回值:

是否打开弹窗

#### listens(type, propagate) → Boolean
layer/GroupLayer.js 628

是否有绑定指定的事件

参数名称 | 类型 | 描述信息
--- | --- | ---
`type` | String | EventType | 事件类型
`propagate` | Object | 可选 是否判断指定的父类 (用addEventParent设置的)

##### 返回值:

是否存在

#### off(types, fn, context) → void
layer/GroupLayer.js 588

解除绑定指定类型事件监听器

参数名称 | 类型 | 描述信息
--- | --- | ---
`types` | String | EventType | Object | 可选 事件类型，Object时删除一组类型/侦听器对。
`fn` | function | 可选 绑定的监听器回调方法
`context` | Object | 可选 侦听器的上下文(this关键字将指向的对象)。

##### 返回值:

无

#### on(type, fn, context) → void
layer/GroupLayer.js 575

绑定指定类型事件监听器

参数名称 | 类型 | 描述信息
--- | --- | ---
`type` | String | EventType | Object | 事件类型，当是Object时可以添加一组类型/侦听器对，例如 {click: onClick, mousemove: onMouseMove}
`fn` | function | 可选 绑定的监听器回调方法
`context` | Object | 可选 侦听器的上下文(this关键字将指向的对象)。

##### 返回值:

无

#### once(types, fn, context) → void
layer/GroupLayer.js 614

绑定一次性执行的指定类型事件监听器 与on类似，监听器只会被触发一次，然后被删除。

参数名称 | 类型 | 描述信息
--- | --- | ---
`types` | String | EventType | Object | 可选 事件类型，Object时删除一组类型/侦听器对。
`fn` | function | 可选 绑定的监听器回调方法
`context` | Object | 可选 侦听器的上下文(this关键字将指向的对象)。

##### 返回值:

无

#### openPopup(latlng) → GroupLayer
layer/GroupLayer.js 405

打开Popup弹窗

参数名称 | 类型 | 描述信息
--- | --- | ---
`latlng` | L.LatLng | 可选 位置,如果latlng没有设置则在默认的所在位置打开。

##### 返回值:

当前对象本身，可以链式调用

#### openTooltip(latlng) → GroupLayer
layer/GroupLayer.js 500

打开Tooltip弹窗

参数名称 | 类型 | 描述信息
--- | --- | ---
`latlng` | L.LatLng | 可选 位置,如果latlng没有设置则在默认的所在位置打开。

##### 返回值:

当前对象本身，可以链式调用

#### remove() → GroupLayer
layer/GroupLayer.js 376

将图层从地图上移除

##### 返回值:

当前对象本身，可以链式调用

#### removeEventParent(obj) → GroupLayer
layer/GroupLayer.js 650

移除抛出事件到父类

参数名称 | 类型 | 描述信息
--- | --- | ---
`obj` | Object | 父类对象

##### 返回值:

当前对象本身,可以链式调用

#### removeLayer(childlayer) → GroupLayer
layer/GroupLayer.js 243

移除图层

参数名称 | 类型 | 描述信息
--- | --- | ---
`childlayer` | L.Layer | Number | 移除的子图层 或 图层ID

##### 返回值:

当前对象本身，可以链式调用

#### setPopupContent(content) → GroupLayer
layer/GroupLayer.js 433

设定绑定在图层上的弹窗的内容

参数名称 | 类型 | 描述信息
--- | --- | ---
`content` | String | HTMLElement | L.Popup | Popup弹窗内容

##### 返回值:

当前对象本身，可以链式调用

#### setTooltipContent(content) → GroupLayer
layer/GroupLayer.js 528

设定绑定在图层上的弹窗的内容

参数名称 | 类型 | 描述信息
--- | --- | ---
`content` | String | HTMLElement | L.Tooltip | Tooltip弹窗内容

##### 返回值:

当前对象本身，可以链式调用

#### setZIndex(zIndex) → GroupLayer
layer/GroupLayer.js 356

调用setZIndex此组中包含的每个图层，传递z-index。

参数名称 | 类型 | 描述信息
--- | --- | ---
`zIndex` | Number | 图层顺序值

##### 返回值:

当前对象本身，可以链式调用

#### toGeoJSON() → Object
layer/GroupLayer.js 289

将图层内的矢量数据转为GeoJSON格式对象

##### 返回值:

返回GeoJSON格式对象（作为GeoJSON GeometryCollection）。

#### unbindContextMenu() → Map
layer/GroupLayer.js 471

解除绑定右键菜单

##### 返回值:

当前对象本身，可以链式调用

#### unbindContextMenu() → Map
layer/GroupLayer.js 566

解除绑定右键菜单

##### 返回值:

当前对象本身，可以链式调用

#### unbindPopup() → GroupLayer
layer/GroupLayer.js 396

解除绑定Popup弹窗配置

##### 返回值:

当前对象本身，可以链式调用

#### unbindTooltip() → GroupLayer
layer/GroupLayer.js 491

解除绑定Tooltip弹窗配置

##### 返回值:

当前对象本身，可以链式调用

### 定义的类型

#### mars2d.layer.GroupLayer.EventType
layer/GroupLayer.js 5

当前类支持的`EventType`事件类型（包括自定义字符串事件名）

##### 属性:

属性名称 | 类型 | 描述信息
--- | --- | ---
`add` | String | 在图层添加到地图上之后触发
`remove` | String | 在图层从地图上移除之后触发
`popupopen` | String | 当绑定到当前图层的Popup弹窗打开时触发
`popupclose` | String | 当绑定到当前图层的Popup弹窗关闭时触发
`tooltipopen` | String | 当Tooltip提示框绑定到这个图层并打开时触发
`tooltipclose` | String | 当Tooltip提示框绑定到这个图层并关闭时触发

##### 使用示例:

    //绑定监听事件
    groupLayer.on('add', function (event) {
      console.log('触发了事件',event)
    });

##### 参考:

- BaseClass#on
- BaseClass#off