#### # new WFSLayer(options)

WFS图层，
目前二维和三维上支持4326(包括4490，4214以及4610)，3857以及EPSG支持的自定义坐标系，WFS服务会自动读取元信息上的坐标系，不需要用户指定
[ES5引入方式]：
Zondy.Layer.WMTSLayer()
[ES6引入方式]：
import { WMTSLayer } from "@mapgis/webclient-common"
针对图层的操作请在图层加载完毕事件中进行
Layer.on('layerview-created', function (result) {
console.log("加载完毕:", result.layer)
});
如果不想在该事件中放入业务代码，则请确认图层资源已加载完毕后再进行操作
if(layer.loadStatus === 'loaded') {
// 你的业务逻辑
}

#### 参数:

名称 | 类型 | 默认值 | 描述
--- | --- | --- | ---
`options` | Object |  | 构造参数
`url` | String |  | 服务基地址，目前支持的服务如下： 1、IGS2.0的WFS服务：http://{ip}:{port}/igs/rest/services/{ServiceName}/WFSServer，示例如下： [1、添加IGS要素图层-不指定图层] [2、添加IGS要素图层-指定图层名称] 删除图层方法：[删除图层]
`sublayerId` | String |  | WFS服务的子图层名称，不指定则默认区该服务的第一个子图层
`id` | String |  | 图层id，不给则给一个随机的id
`index` | Number |  | 图层顺序，参考示例：[图层顺序]
`opacity` | Number | 1 | 图层透明度，0到1之间的值，0为完全透明，1为不透明，参考示例：[设置图层透明度]
`visible` | Boolean | true | 图层显示或隐藏，true则显示，false则隐藏，参考示例：[设置图层显示或隐藏]
`renderer` | Object |  | 渲染样式，详细的几何类型样式请参考支持的渲染样式文档，所有支持的渲染样式如下： `1、单值专题图` `2、分段专题图` `3、统一专题图` 参考示例： [1、单值专题图] [2、分段专题图] [3、统一专题图]
`labelsVisible` | Boolean | false | 是否开启动态注记，仅支持三维场景
`labelingInfo` | Array.<LabelClass> | [] | 注记样式数组，可以和renderer同时启用，默认取数组的第一个样式， 仅支持三维场景，参考示例：[注记样式]
`elevationInfo` | ElevationInfo |  | 高程样式，仅支持三维场景

查看源代码 common/document/layer/ogc/WFSLayer.js, line 9

绑定事件:

- Layer#event:图层加载完毕事件
- Layer#event:图层销毁完毕事件
- Layer#event:图层更新完毕事件
- Layer#event:图层显隐更新完毕事件
- Layer#event:图层透明度更新完毕事件
- Layer#event:图层刷新完毕事件

##### 支持如下方法：

[1、加载图层资源]
[2、指定图层的要素查询]
[3、查询要素数量]
[4、通过传入的json构造并返回一个新的几何对象]
`5、导出为json对象`
`6、克隆几何对象`

##### 示例

添加IGS2.0的WFS图层-不指定图层示例

    // ES5引入方式
    const { Map, MapView, SceneView } = Zondy
    const { WFSLayer } = Zondy.Layer
    // ES6引入方式
    import { Map, MapView, SceneView, WFSLayer } from "@mapgis/webclient-common"
    // 初始化图层管理容器
    const map = new Map();
    // 初始化二维地图视图对象
    const mapView = new MapView({
      // 视图id
      viewId: "viewer-id",
      // 图层管理容器
      map: map
    });
    // 初始化三维地图视图对象
    const mapView = new SceneView({
      // 视图id
      viewId: "viewer-id",
      // 图层管理容器
      map: map
    });
    // 初始化WFS图层
    const wfsLayer = new WFSLayer({
      url: 'http://{ip}:{port}/igs/rest/services/{ServiceName}/WFSServer'
    })
    // 添加到容器中
    map.add(wfsLayer)

添加IGS2.0的WFS图层-不指定图层示例

    // ES5引入方式
    const { Map, MapView, SceneView } = Zondy
    const { WFSLayer } = Zondy.Layer
    // ES6引入方式
    import { Map, MapView, SceneView, WFSLayer } from "@mapgis/webclient-common"
    // 初始化图层管理容器
    const map = new Map();
    // 初始化二维地图视图对象
    const mapView = new MapView({
      // 视图id
      viewId: "viewer-id",
      // 图层管理容器
      map: map
    });
    // 初始化三维地图视图对象
    const mapView = new SceneView({
      // 视图id
      viewId: "viewer-id",
      // 图层管理容器
      map: map
    });
    // 初始化WFS图层
    const wfsLayer = new WFSLayer({
      // 服务基地址，当不指定图层名称时，默认查询第一个子图层
      url: 'http://{ip}:{port}/igs/rest/services/{ServiceName}/WFSServer'
    })
    // 添加到容器中
    map.add(wfsLayer)

添加IGS2.0的WFS图层-指定图层名称示例

    // ES5引入方式
    const { Map, MapView, SceneView } = Zondy
    const { WFSLayer } = Zondy.Layer
    // ES6引入方式
    import { Map, MapView, SceneView, WFSLayer } from "@mapgis/webclient-common"
    // 初始化图层管理容器
    const map = new Map();
    // 初始化二维地图视图对象
    const mapView = new MapView({
      // 视图id
      viewId: "viewer-id",
      // 图层管理容器
      map: map
    });
    // 初始化三维地图视图对象
    const mapView = new SceneView({
      // 视图id
      viewId: "viewer-id",
      // 图层管理容器
      map: map
    });
    // 初始化WFS图层
    const wfsLayer = new WFSLayer({
      // 服务基地址
      url: 'http://{ip}:{port}/igs/rest/services/{ServiceName}/WFSServer',
      // 通过图层名称指定要查询的图层
      sublayerId: 'Map_Hubei4326:t2'
    })
    // 添加到容器中
    map.add(wfsLayer)

单值专题图

    // ES5引入方式
    const { WFSLayer } = Zondy.Layer
    const { UniqueValueRenderer } = Zondy.Renderer
    const { SimpleFillSymbol } = Zondy.Symbol
    const { Color } = Zondy
    // ES6引入方式
    import { WFSLayer, UniqueValueRenderer, SimpleFillSymbol, Color } from "@mapgis/webclient-common"
    const wfsLayer = new WFSLayer({
      // 服务基地址，当不指定图层名称时，默认查询第一个子图层
      url: 'http://{ip}:{port}/igs/rest/services/{ServiceName}/WFSServer',
      // 设置渲染样式-单值专题图
      renderer: new UniqueValueRenderer({
        // 专题图过滤字段名
        field: '字段名',
        // 默认样式，当没有匹配到指定值时，会使用默认样式
        // 因为该数据的几何类型为区，因此设置区样式
        defaultSymbol: new SimpleFillSymbol({
          // 填充颜色
          color: new Color(255, 0, 0),
          // 外边线样式
          outline: new SimpleLineSymbol({
            // 线颜色
            color: new Color(0, 0, 0),
            // 线宽
            width: 1
          })
        }),
        // 单值专题图过滤条件数组
        uniqueValueInfos: [
          {
            //指定字段值
            value: '过滤字段值1',
            //匹配到该值后的样式
            // 因为该数据的几何类型为区，因此设置区样式
            symbol: new SimpleFillSymbol({
              // 填充颜色
              color: new Color(255, 0, 0)
            })
          },
          {
            //指定字段值
            // 因为该数据的几何类型为区，因此设置区样式
            value: '过滤字段值2',
            //匹配到该值后的样式
            // 因为该数据的几何类型为区，因此设置区样式
            symbol: new SimpleFillSymbol({
              // 填充颜色
              color: 'rgb(255, 123, 220)'
            })
          }
        ]
      })
    })

分段专题图

    // ES5引入方式
    const { WFSLayer } = Zondy.Layer
    const { ClassBreakRenderer } = Zondy.Renderer
    const { SimpleLineSymbol } = Zondy.Symbol
    const { Color } = Zondy
    // ES6引入方式
    import { WFSLayer, UniqueValueRenderer, SimpleLineSymbol, Color } from "@mapgis/webclient-common"
    const wfsLayer = new WFSLayer({
      // 服务基地址，当不指定图层名称时，默认查询第一个子图层
      url: 'http://{ip}:{port}/igs/rest/services/{ServiceName}/WFSServer',
      // 设置渲染样式-分段专题图
      renderer: new ClassBreakRenderer({
        // 专题图过滤字段名
        field: '字段名',
        // 默认样式，当没有匹配到指定值时，会使用默认样式
        // 因为该数据的几何类型为线，因此设置线样式
        defaultSymbol: new SimpleLineSymbol({
          // 线符号颜色
          color: new Color(1, 244, 0),
          // 线宽
          width: 3
        }),
        // 分段专题图过滤条件数组
        classBreakInfos: [
          {
            // 最小过滤范围，field对应的值大于等于minValue
            minValue: 0,
            // 最大过滤范围，field对应的值小于maxValue
            maxValue: 2,
            // 匹配到该值后的样式
            // 因为该数据的几何类型为线，因此设置线样式
            symbol: new SimpleLineSymbol({
              // 线符号颜色
              color: new Color(1, 244, 0),
              // 线宽
              width: 3
            })
          },
          {
            // 最小过滤范围，field对应的值大于等于minValue
            minValue: 3,
            // 最大过滤范围，field对应的值小于maxValue
            maxValue: 5,
            // 匹配到该值后的样式
            // 因为该数据的几何类型为线，因此设置线样式
            symbol: new SimpleLineSymbol({
              // 线符号颜色
              color: new Color(111, 144, 10),
              // 线宽
              width: 3
            })
          },
          {
            // 最小过滤范围，field对应的值大于等于minValue
            minValue: 5,
            // 最大过滤范围，field对应的值小于maxValue
            maxValue: 7,
            // 匹配到该值后的样式
            // 因为该数据的几何类型为线，因此设置线样式
            symbol: new SimpleLineSymbol({
              // 线符号颜色
              color: new Color(22, 244, 10),
              // 线宽
              width: 3
            })
          },
          {
            // 最小过滤范围，field对应的值大于等于minValue
            minValue: 7,
            // 最大过滤范围，field对应的值小于maxValue
            maxValue: 9,
            // 匹配到该值后的样式
            // 因为该数据的几何类型为线，因此设置线样式
            symbol: new SimpleLineSymbol({
              // 线符号颜色
              color: new Color(33, 44, 10),
              // 线宽
              width: 3
            })
          },
          {
            // 最小过滤范围，field对应的值大于等于minValue
            minValue: 9,
            // 最大过滤范围，field对应的值小于maxValue
            maxValue: 20,
            // 匹配到该值后的样式
            // 因为该数据的几何类型为线，因此设置线样式
            symbol: new SimpleLineSymbol({
              // 线符号颜色
              color:  new Color(123, 124, 110),
              // 线宽
              width: 3
            })
          }
        ]
      })
    })

统一专题图

    // ES5引入方式
    const { WFSLayer } = Zondy.Layer
    const { SimpleRenderer } = Zondy.Renderer
    const { SimpleLineSymbol } = Zondy.Symbol
    const { Color } = Zondy
    // ES6引入方式
    import { WFSLayer, SimpleRenderer, SimpleLineSymbol, Color } from "@mapgis/webclient-common"
    const wfsLayer = new WFSLayer({
      // 服务基地址，当不指定图层名称时，默认查询第一个子图层
      url: 'http://{ip}:{port}/igs/rest/services/{ServiceName}/WFSServer',
      // 设置渲染样式-统一专题图
      renderer: new SimpleRenderer({
        // 因为该数据的几何类型为区，因此设置区样式
        symbol: new SimpleFillSymbol({
          // 填充颜色
          color: new Color(255, 0, 0),
          // 外边线样式
          outline: new SimpleLineSymbol({
            // 线颜色
            color: new Color(0, 0, 0),
            // 线宽度
            width: 1
          })
        })
      })
    })

启用注记

    // ES5引入方式
    const { LabelClass, Color, Font } = Zondy
    const { TextSymbol } = Zondy.Symbol
    const { WFSLayer } = Zondy.Layer
    // ES6引入方式
    import { LabelClass, Color, Font, TextSymbol, WFSLayer } from "@mapgis/webclient-common"
    // 初始化LabelClass
    const labelClass = new LabelClass({
      // 指定文本符号样式
      symbol: new TextSymbol({
        // 文字颜色
        color: new Color(252, 100, 22, 1),
        // 文字样式
        font: new Font({
          // 字体
          family: "微软雅黑",
          // 文字大小，单位像素
          size: 30,
          // 文字是否为斜体，正常模式
          style: "normal",
          // 文字粗细
          weight: "normal"
        })
      })
    })
    // 初始化WFS图层
    const wfsLayer = new WFSLayer({
      // 服务
      url: 'http://{ip}:{port}/igs/rest/services/{ServiceName}/WFSServer',
      // 可在此处设置渲染样式
      renderer: {},
      // 启用注记
      labelsVisible: true,
      // 设置注记样式
      labelingInfo: [labelClass]
    })
    // 添加到容器中
    map.add(wfsLayer)

图层顺序

    // ES5引入方式
    const { IGSMapImageLayer, WFSLayer } = Zondy.Layer
    // ES6引入方式
    import { IGSMapImageLayer, WFSLayer } from "@mapgis/webclient-common"
    // 加载地图图片图层，设置index为3
    const igsMapImageLayer = new IGSMapImageLayer({
      // 服务基地址
      url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/MapServer',
      // 设置index
      index: 3
    });
    map.add(igsMapImageLayer)

    // 加载完毕后，更改图层顺序
    map.reorder(layer, '要移动到的index');

    // 初始化WFS图层
    const wfsLayer = new WFSLayer({
      // 服务基地址
      url: 'http://{ip}:{port}/igs/rest/services/{ServiceName}/WFSServer',
      // 设置index
      index: 4
    })
    // 添加到容器中
    map.add(wfsLayer)

设置图层透明度

    // ES5引入方式
    const { WFSLayer } = Zondy.Layer
    // ES6引入方式
    import { WFSLayer } from "@mapgis/webclient-common"
    // 初始化时指定透明度
    const wfsLayer = new WFSLayer({
      // 服务基地址
      url: 'http://{ip}:{port}/igs/rest/services/{ServiceName}/WFSServer',
      // 设置opacity
      opacity: 1
    })
    // 添加到容器中
    map.add(wfsLayer)

    // 加载完毕后设置透明度
    wfsLayer.opacity = 0.5

设置图层可见性

    // ES5引入方式
    const { WFSLayer } = Zondy.Layer
    // ES6引入方式
    import { WFSLayer } from "@mapgis/webclient-common"
    // 在初始化时设置
    const wfsLayer = new WFSLayer({
      // 服务基地址
      url: 'http://{ip}:{port}/igs/rest/services/{ServiceName}/WFSServer',
      // 设置图层可见性
      visible: true
    })
    // 添加到容器中
    map.add(wfsLayer)

    // 加载完毕后设置可见性
    wfsLayer.visible = false

### 继承关系

- OGCLayer

### 成员变量

类型: String

#### # readonly copyright

版权所有

Inherited From:
  - Layer#copyright

查看源代码 common/document/layer/baseLayer/Layer.js, line 203

类型: Object

#### # customParameters

自定义查询参数customParameters

Inherited From:
  - OGCLayer#customParameters

查看源代码 common/document/layer/ogc/OGCLayer.js, line 32

类型: String

#### # readonly description

图层描述

Inherited From:
  - Layer#description

查看源代码 common/document/layer/baseLayer/Layer.js, line 197

类型: ElevationInfo

#### # elevationInfo

高程信息

查看源代码 common/document/layer/ogc/WFSLayer.js, line 469

类型: Extent

#### # readonly extent

图层范围，从服务元信息中获取

Inherited From:
  - Layer#extent

查看源代码 common/document/layer/baseLayer/Layer.js, line 475

类型: String

#### # readonly geometryType

服务元数据的几何类型

查看源代码 common/document/layer/ogc/WFSLayer.js, line 477

类型: String

#### # readonly id

图层id

Overrides:
  - OGCLayer#id

查看源代码 common/document/layer/baseLayer/Layer.js, line 191

类型: Number

#### # index

图层顺序

Inherited From:
  - Layer#index

查看源代码 common/document/layer/baseLayer/Layer.js, line 235

类型: Array.<LabelClass>

#### # labelingInfo

注记样式数组，默认取数组的第一个样式，仅支持三维动态注记渲染

查看源代码 common/document/layer/ogc/WFSLayer.js, line 499

类型: Boolean

#### # labelsVisible

是否开启动态注记,仅支持三维动态注记渲染

查看源代码 common/document/layer/ogc/WFSLayer.js, line 494

类型: Boolean

#### # readonly loaded

是否加载完毕

Inherited From:
  - Layer#loaded
Default Value:
  - false

查看源代码 common/document/layer/baseLayer/Layer.js, line 216

类型: String

#### # readonly loadStatus

图层加载状态

Inherited From:
  - Layer#loadStatus
Default Value:
  - not-loaded

查看源代码 common/document/layer/baseLayer/Layer.js, line 209

类型: Number

#### # maxScale

最大缩放级数，仅会请求级数小于等于maxScale的图片

Inherited From:
  - Layer#maxScale
Default Value:
  - 19

查看源代码 common/document/layer/baseLayer/Layer.js, line 251

类型: Number

#### # minScale

最小缩放级数，仅会请求级数大于等于minScale的图片

Inherited From:
  - Layer#minScale
Default Value:
  - 0

查看源代码 common/document/layer/baseLayer/Layer.js, line 245

类型: Number

#### # opacity

图层透明度，0到1之间的值，0为完全透明，1为不透明，会触发图层更新完毕事件

Inherited From:
  - Layer#opacity

查看源代码 common/document/layer/baseLayer/Layer.js, line 441

类型: Array.<String>

#### # readonly outFields

服务数据库的所有字段名数组

查看源代码 common/document/layer/ogc/WFSLayer.js, line 463

类型: String

#### # renderer

renderer渲染器

查看源代码 common/document/layer/ogc/WFSLayer.js, line 453

类型: SpatialReference

#### # spatialReference

图层坐标系对象

Inherited From:
  - Layer#spatialReference

查看源代码 common/document/layer/baseLayer/Layer.js, line 462

类型: Array.<SpatialReference>

#### # spatialReferences

图层支持的所有坐标系

Inherited From:
  - Layer#spatialReferences

查看源代码 common/document/layer/ogc/WMSLayer.js, line 371

类型: String

#### # sublayerId

图层id

查看源代码 common/document/layer/ogc/WFSLayer.js, line 483

类型: String

#### # title

图层名称

Inherited From:
  - Layer#title

查看源代码 common/document/layer/baseLayer/Layer.js, line 240

类型: String

#### # tokenKey

token名

Inherited From:
  - Layer#tokenKey
Default Value:
  - token

查看源代码 common/document/layer/baseLayer/Layer.js, line 224

类型: String

#### # tokenValue

token值

Inherited From:
  - Layer#tokenValue

查看源代码 common/document/layer/baseLayer/Layer.js, line 230

类型: String

#### # readonly type

图层类型

Overrides:
  - OGCLayer#type

查看源代码 common/document/layer/baseLayer/Layer.js, line 257

类型: String

#### # version

ogc版本号

Inherited From:
  - OGCLayer#version

查看源代码 common/document/layer/ogc/OGCLayer.js, line 26

类型: Number

#### # visible

图层显示或隐藏，true则显示，false则隐藏，会触发图层更新完毕事件

Inherited From:
  - Layer#visible

查看源代码 common/document/layer/baseLayer/Layer.js, line 420

类型: String

#### # readonly wfsCapabilities

wfsCapabilities信息

查看源代码 common/document/layer/ogc/WFSLayer.js, line 488

### 方法

#### # static fromJSON(jsonopt)

通过传入的json构造并返回一个新的几何对象

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`json` | Object | JSON对象

查看源代码 common/document/layer/ogc/WFSLayer.js, line 664

##### 示例

<h7>通过传入的json构造并返回一个新的几何对象

    const json = {
      // 服务基地址
      url: 'http://{ip}:{port}/igs/rest/services/{ServiceName}/WFSServer'
    }
    const wfsLayer = new Zondy.Layer.WFSLayer.fromJSON(json)

#### # clone()

克隆方法

Inherited From:
  - Layer#clone

查看源代码 common/document/layer/baseLayer/Layer.js, line 372

返回值:

图层

类型: Layer

#### # isLoaded()

判断图层是否加载成功

Inherited From:
  - Layer#isLoaded

查看源代码 common/document/layer/baseLayer/Layer.js, line 281

返回值:

图层是否加载成功

类型: Boolean

#### # load()

加载图层资源

查看源代码 common/document/layer/ogc/WFSLayer.js, line 527

##### 示例

<h7>不加载图层，仅获取图层信息

    // ES5引入方式
    const { WFSLayer } = Zondy.Layer
    // ES6引入方式
    import { WFSLayer } from "@mapgis/webclient-common"
    // 初始化图层
    const wfsLayer = new WFSLayer({
      // 服务基地址
      url: 'http://{ip}:{port}/igs/rest/services/{ServiceName}/WFSServer'
    });
    wfsLayer.load().then((result) => {
      // 获取完图层信息
      console.log(wfsLayer)
    })

#### # off(typesopt, fnopt, contextopt)

移除事件
示例如下:
[1、移除一个事件的指定回调函数]
[2、移除一个事件的所有回调函数]
[3、移除多个事件的同一个指定的回调函数]
[4、移除多个指定事件的回调函数]
[5、删除时指定上下文 - types类型为字符串]
[6、删除时指定上下文 - types类型为对象]

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`types` | string | 移除指定事件类型上绑定的回调函数 当类型为字符串时，可以移除单个或多个事件类型绑定的回调函数，单个事件："click"，多个事件：以空格分割:"click double-click"； 当types为对象时，使用如下方式移除事件：{'click': onClickFun, 'mouse-move': onMouseMoveFun}
`fn` | function | 事件回调函数，当types为字符串，且不指定要删除的回调函数时，删除该事件上的所有回调函数
`context` | Object | 事件回调函数的this关键字将指向的对象

Inherited From:
  - Evented#off

查看源代码 common/base/Evented.js, line 269

返回值:

当前实例

类型: Object

##### 示例

##### 移除一个事件的指定回调函数

    // 一个事件的回调函数
    const clickFunction = function (event) {
      console.log("点击事件:", event)
    }
    // 调用MapView或SceneView的off方法移除一个事件的回调函数
    view.off('click', clickFunction)

##### 移除一个事件的所有回调函数

    // 一个事件的回调函数1
    const clickFunction1 = function (event) {
      console.log("点击事件1:", event)
    }

    // 一个事件的回调函数2
    const clickFunction2 = function (event) {
      console.log("点击事件2:", event)
    }

    // 调用MapView或SceneView的off方法移除一个事件的所有回调函数
    // 不指定回调函数，则移除该事件上的所有绑定的回调函数
    view.off('click')

##### 移除多个事件的同一个指定的回调函数

    // 多个事件的同一个回调函数
    const eventFunction = function (event) {
      console.log("事件:", event)
    }
    // 调用MapView或SceneView的off方法移除多个事件的同一个指定的回调函数
    view.off('click double-click', eventFunction)

##### 移除多个指定事件的回调函数

    // 一个事件的回调函数
    const clickFunction = function (event) {
      console.log("click事件:", event)
    }
    // 调用MapView或SceneView的off方法移除多个指定事件的回调函数
    view.off({
       // 移除click事件上一个指定的函数
      "click": clickFunction,
      // 移除double-click上所有指定的函数
      "double-click": undefined
    })

##### 删除时指定上下文 - types类型为字符串

    // 一个事件的回调函数
    const clickFunction = function (event) {
      console.log("点击事件:", event)
    }
    // 调用MapView或SceneView的off方法移除一个事件的回调函数
    view.off('click', clickFunction, view)
    // 调用MapView或SceneView的off方法移除一个事件的所有回调函数
    view.off('click', undefined, view)

##### 删除时指定上下文 - types类型为对象

    // 一个事件的回调函数
    const clickFunction = function (event) {
      console.log("click事件:", event)
    }
    // 调用MapView或SceneView的off方法移除多个指定事件的回调函数
    view.off({
       // 移除click事件上一个指定的函数
      "click": clickFunction,
      // 移除double-click上所有指定的函数
      "double-click": undefined
    }, view)

#### # on(typesopt, fnopt, contextopt)

注册一个新的监听事件;
示例如下：
[1、注册一个事件]
[2、一次注册多个事件 - 同一个回调函数]
[3、一次注册多个事件 - 分别指回调应函数]
[4、当types为字符串时 - 指定上下文]
[5、当types为对象时 - 指定上下文]

#### 参数:

名称 | 类型 | 默认值 | 描述
--- | --- | --- | ---
`types` | String | Object | null | 事件类型 当types为字符串时，可以定义单个或多个事件，单个事件："click"，多个事件：以空格分割:"click double-click"； 当types为对象时，使用如下方式指定事件：{'click': onClickFun, 'mouse-move': onMouseMoveFun}
`fn` | function | null | 事件回调函数
`context` | Object | null | 事件回调函数的this关键字将指向的对象

Inherited From:
  - Evented#on

查看源代码 common/base/Evented.js, line 173

返回值:

当前实例

类型: Object

##### 示例

##### 注册一个事件

    // 初始化一个点击事件回调函数
    const clickFunction = function (event) {
      console.log("点击事件:", event)
    }
    // 调用MapView或SceneView的on方法注册一个点击事件
    view.on('click', clickFunction)

##### 一次注册多个事件 - 同一个回调函数

    // 初始化一个事件回调函数
    const eventFunction = function (event) {
      console.log("事件:", event)
    }

    // 调用MapView或SceneView的on方法注册多个事件
    // 多个事件类型使用同一个回调函数
    view.on('click right-click-down', eventFunction)

##### 一次注册多个事件 - 分别指回调应函数

    // 初始化一个左键点击事件回调函数
    const clickFunction = function (event) {
      console.log("click事件:", event)
    }

    // 初始化一个右键按下事件回调函数
    const rightClickFunction = function (event) {
      console.log("right-click-down事件:", event)
    }

    // 调用MapView或SceneView的on方法注册多个事件
    // 每一个事件类型，使用单独的回调函数
    // 注意使用此种方式，一种类型的事件仅能指定一个回调函数
    view.on({
      "click": clickFunction,
      "right-click-down": rightClickFunction
    })

##### 指定上下文 - types类型为字符串

    // 初始化一个点击事件回调函数
    const clickFunction = function (event) {
      console.log("点击事件:", event)
      console.log("上下文对象:", this)
    }
    // 调用MapView或SceneView的on方法注册一个点击事件
    // 指定view为回调函数的上下文对象
    view.on('click', clickFunction, view)

##### 指定上下文 - types类型为对象

    // 初始化一个点击事件回调函数
    const clickFunction = function (event) {
      console.log("点击事件:", event)
      console.log("上下文对象:", this)
    }
    // 调用MapView或SceneView的on方法注册一个点击事件
    // 指定view为回调函数的上下文对象
    view.on({
      "click": clickFunction,
      "right-click-down": clickFunction
    }, view)

#### # queryFeatures(queryOptions)

指定图层的要素查询

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`queryOptions` | Object | 参考此接口的入参`WFSServer#queryFeatures`

查看源代码 common/document/layer/ogc/WFSLayer.js, line 606

返回值:
类型: Promise.<FeatureSet>

##### 示例

<h7>指定图层的要素查询

    wfsLayer.queryFeatures({
      // 图层id
      layerId: '0',
      // where语句
      where: "查询条件"
    }).then((result) => {
      console.log('查询结果:', result)
    })

#### # queryFeaturesCount(queryOptions)

查询要素数量

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`queryOptions` | Object | 参考此接口的入参`WFSServer#queryFeatures`

查看源代码 common/document/layer/ogc/WFSLayer.js, line 631

返回值:
类型: Promise.<Number>

##### 示例

<h7>查询要素数量

    igsFeatureLayer.queryFeaturesCount({
      // 图层id
      layerId: '0',
      // where语句
      where: "查询条件"
    }).then((result) => {
      console.log('查询结果:', result)
    })

#### # refresh()

刷新图层

Inherited From:
  - Layer#refresh

查看源代码 common/document/layer/baseLayer/Layer.js, line 392

#### # toJSON()

转换为json对象

Inherited From:
  - OGCLayer#toJSON

查看源代码 common/document/layer/ogc/OGCLayer.js, line 48

返回值:

json对象

类型: Object

### 事件

#### # 图层刷新完毕事件

图层刷新完毕事件，请注意该事件是图层更新事件(layerview-update)的子事件

##### 属性:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`event` | Object |  |  | 事件对象
`type` | String | <optional> | 'layerview-update' | 图层更新完毕事件
`message` | String | <optional> | null | 更新描述
`updateContent` | Array.<UpdateContent> | <optional> | null | 更新详情对象
`layer` | Layer | <optional> | null | 地图图层对象
`layerView` | MapView | <optional> | null | 图层的视图对象
`sourceTarget` | Layer | <optional> | null | 事件发起对象
`target` | Map | <optional> | null | 事件接收对象

Inherited From:
  - Layer#event:图层刷新完毕事件

查看源代码 common/document/layer/baseLayer/Layer.js, line 160

##### 示例

##### 图层刷新完毕事件

    Layer.on('layerview-update', function (event) {
      // 获取更新事件对象
      console.log("更新完毕:", event)
      // 获取更新详情数组
      const updateContent = event.updateContent
      // 循环数组，根据事件名进行后续操作
      for (let i = 0; i < updateContent.length; i++) {
        // 图层刷新完毕事件
        if(updateContent[i].name === 'refresh'){
          console.log("图层刷新完毕事件:", event);
        }
      }
    });

#### # 图层加载完毕事件

图层加载完毕事件

##### 属性:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`event` | Object |  |  | 事件对象
`type` | String | <optional> | 'layerview-created' | 图层加载完毕事件
`message` | String | <optional> | null | 更新描述
`UpdateContent` | Array.<UpdateContent> | <optional> | null | 更新详情对象
`layer` | Layer | <optional> | null | 地图图层对象
`layerView` | MapView | <optional> | null | 图层的视图对象
`sourceTarget` | Layer | <optional> | null | 事件发起对象
`target` | Map | <optional> | null | 事件接收对象

Inherited From:
  - Layer#event:图层加载完毕事件

查看源代码 common/document/layer/baseLayer/Layer.js, line 28

##### 示例

<h7>图层加载完毕事件

    Layer.on('layerview-created', function (result) {
      console.log("加载完毕:", result.layer)
    });

#### # 图层显隐更新完毕事件

图层显隐更新完毕事件，请注意该事件是图层更新事件(layerview-update)的子事件

##### 属性:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`event` | Object |  |  | 事件对象
`type` | String | <optional> | 'layerview-update' | 图层更新完毕事件
`message` | String | <optional> | null | 更新描述
`updateContent` | Array.<UpdateContent> | <optional> | null | 更新详情对象
`layer` | Layer | <optional> | null | 地图图层对象
`layerView` | MapView | <optional> | null | 图层的视图对象
`sourceTarget` | Layer | <optional> | null | 事件发起对象
`target` | Map | <optional> | null | 事件接收对象

Inherited From:
  - Layer#event:图层显隐更新完毕事件

查看源代码 common/document/layer/baseLayer/Layer.js, line 79

##### 示例

##### 图层显隐更新完毕事件

    Layer.on('layerview-update', function (event) {
      // 获取更新事件对象
      console.log("更新完毕:", event)
      // 获取更新详情数组
      const updateContent = event.updateContent
      // 循环数组，根据事件名进行后续操作
      for (let i = 0; i < updateContent.length; i++) {
        // 图层显隐事件
        if(updateContent[i].name === 'visible'){
          console.log("图层显隐更新事件:", event);
        }
      }
    });

#### # 图层更新完毕事件

图层更新完毕事件

##### 属性:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`event` | Object |  |  | 事件对象
`type` | String | <optional> | 'layerview-update' | 图层更新完毕事件
`message` | String | <optional> | null | 更新描述
`updateContent` | Array.<UpdateContent> | <optional> | null | 更新详情对象
`layer` | Layer | <optional> | null | 地图图层对象
`layerView` | MapView | <optional> | null | 图层的视图对象
`sourceTarget` | Layer | <optional> | null | 事件发起对象
`target` | Map | <optional> | null | 事件接收对象

Inherited From:
  - Layer#event:图层更新完毕事件

查看源代码 common/document/layer/baseLayer/Layer.js, line 62

##### 示例

<h7>图层更新完毕事件

    Layer.on('layerview-update', function (result) {
      console.log("更新完毕:", result.layer)
    });

#### # 图层透明度更新完毕事件

图层透明度更新完毕事件，请注意该事件是图层更新事件(layerview-update)的子事件

##### 属性:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`event` | Object |  |  | 事件对象
`type` | String | <optional> | 'layerview-update' | 图层更新完毕事件
`message` | String | <optional> | null | 更新描述
`updateContent` | Array.<UpdateContent> | <optional> | null | 更新详情对象
`layer` | Layer | <optional> | null | 地图图层对象
`layerView` | MapView | <optional> | null | 图层的视图对象
`sourceTarget` | Layer | <optional> | null | 事件发起对象
`target` | Map | <optional> | null | 事件接收对象

Inherited From:
  - Layer#event:图层透明度更新完毕事件

查看源代码 common/document/layer/baseLayer/Layer.js, line 106

##### 示例

##### 图层透明度更新完毕事件

    Layer.on('layerview-update', function (event) {
      // 获取更新事件对象
      console.log("更新完毕:", event)
      // 获取更新详情数组
      const updateContent = event.updateContent
      // 循环数组，根据事件名进行后续操作
      for (let i = 0; i < updateContent.length; i++) {
        // 图层透明度更新事件
        if(updateContent[i].name === 'opacity'){
          console.log("图层透明度更新事件:", event);
        }
      }
    });

#### # 图层销毁完毕事件

图层销毁完毕事件

##### 属性:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`event` | Object |  |  | 事件对象
`type` | String | <optional> | 'layerview-remove' | 图层销毁完毕事件
`message` | String | <optional> | null | 更新描述
`updateContent` | Array.<UpdateContent> | <optional> | null | 更新详情对象
`layer` | Layer | <optional> | null | 要销毁的地图图层对象
`layerView` | MapView | <optional> | null | 图层的视图对象
`sourceTarget` | Layer | <optional> | null | 事件发起对象
`target` | Map | <optional> | null | 事件接收对象

Inherited From:
  - Layer#event:图层销毁完毕事件

查看源代码 common/document/layer/baseLayer/Layer.js, line 45

##### 示例

<h7>图层销毁完毕事件

    Layer.on('layerview-remove', function (result) {
      console.log("销毁完毕:", result.layer)
    });

#### # 图层顺序更新完毕事件

图层顺序更新完毕事件，请注意该事件是图层更新事件(layerview-update)的子事件

##### 属性:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`event` | Object |  |  | 事件对象
`type` | String | <optional> | 'layerview-update' | 图层更新完毕事件
`message` | String | <optional> | null | 更新描述
`updateContent` | Array.<UpdateContent> | <optional> | null | 更新详情对象
`layer` | Layer | <optional> | null | 地图图层对象
`layerView` | MapView | <optional> | null | 图层的视图对象
`sourceTarget` | Layer | <optional> | null | 事件发起对象
`target` | Map | <optional> | null | 事件接收对象

Inherited From:
  - Layer#event:图层顺序更新完毕事件

查看源代码 common/document/layer/baseLayer/Layer.js, line 133

##### 示例

##### 图层顺序更新完毕事件

    Layer.on('layerview-update', function (event) {
      // 获取更新事件对象
      console.log("更新完毕:", event)
      // 获取更新详情数组
      const updateContent = event.updateContent
      // 循环数组，根据事件名进行后续操作
      for (let i = 0; i < updateContent.length; i++) {
        // 图层顺序更新完毕事件
        if(updateContent[i].name === 'index'){
          console.log("图层顺序更新完毕事件:", event);
        }
      }
    });