#### # new IGSFeatureLayer(options)

IGS要素图层，
目前二维和三维上支持4326(包括4490，4214以及4610)，3857以及EPSG支持的自定义坐标系，要素服务会自动读取元信息上的坐标系，不需要用户指定
[ES5引入方式]：
Zondy.Layer.IGSFeatureLayer()
[ES6引入方式]：
import { IGSFeatureLayer } 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服务：http://{ip}:{port}/igs/rest/services/{ServiceName}/FeatureServer 示例如下： [1、添加IGS要素图层-不指定图层] [2、添加IGS要素图层-指定图层id] [3、添加IGS要素图层-在基地址中指定图层id] 2、IGS1.0服务：http://{ip}:{port}/igs/rest/mrfs/docs/{ServiceName} 示例如下： [1、添加IGS要素图层-IGS1.0] 3、GDBP服务，注意该服务不支持注记：http://{ip}:{port}/igs/rest/mrfs/layer 示例如下： [1、指定一个gdbp地址来渲染要素] 4、删除图层方法：[删除图层]
`sublayerId` | Number | String | 0 | 要素服务的子图层id，不指定则查询第0个图层，指定时，则查询指定layerId的图层
`gdbp` | String |  | 指定一个gdbp数据源来加载图形，格式如下：gdbp://MapGisLocal/武汉市/ds/4326矢量/sfcls/武汉市区划4326
`id` | String |  | 图层id，图层的唯一标识，不指定则给一个随机id
`opacity` | Number | 1 | 图层透明度，0到1之间的值，0为完全透明，1为不透明，参考示例：[设置图层透明度]
`visible` | Boolean | true | 图层显示或隐藏，true则显示，false则隐藏，参考示例：[设置图层显示或隐藏]
`renderMode` | String | 'client' | 渲染模式，分为客户端渲染'client'和服务器端渲染'server'
`renderer` | Renderer |  | 渲染样式， 目前支持如下样式： `1、单值专题图` `2、分段专题图` `3、统一专题图` 参考示例： [1、单值专题图] [2、分段专题图] [3、统一专题图]
`definitionExpression` | String | '' | sql语句查询，例如name='中国'
`labelsVisible` | Boolean | false | 是否开启动态注记，仅支持三维场景
`labelingInfo` | Array.<LabelClass> | [] | 注记样式数组，可以和renderer同时启用，默认取数组的第一个样式， 仅支持三维场景，参考示例：[注记样式]
`minScale` | Number | null | 最小比例尺，只有当地图视图的比例尺大于最小比例尺时显示要素图层
`maxScale` | Number | null | 最大比例尺，只有当地图视图的比例尺小于最大比例尺时显示要素图层
`tokenKey` | String | 'token' | token名
`tokenValue` | String |  | token值，只有当tokenValue存在时，才会绑定token
`supportArc3` | Boolean | true | 是否返回三点弧段数据，为true则返回三个点代表三点弧段，否则返回离散的点

查看源代码 common/document/layer/igserver/IGSFeatureLayer.js, line 11

绑定事件:

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

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

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

##### 示例

添加IGS要素图层-不指定图层

    // ES5引入方式
    const { Map , MapView } = Zondy
    const { IGSFeatureLayer } = Zondy.Layer
    // ES6引入方式
    import { Map , MapView, IGSFeatureLayer} from "@mapgis/webclient-common"
    // 初始化图层管理容器
    const map = new Map();
    // 初始化地图视图对象
    const mapView = new MapView({
      // 视图id
      viewId: "viewer-id",
      // 图层管理容器
      map: map
    });
    // 添加图层
    const igsFeatureLayer = new IGSFeatureLayer({
      // 服务基地址
      url: 'http://{ip}:{port}/igs/rest/services/{ServiceName}/FeatureServer'
    })
    map.add(igsFeatureLayer)

添加IGS要素图层-指定图层id

    // ES5引入方式
    const { IGSFeatureLayer } = Zondy.Layer
    // ES6引入方式
    import {  IGSFeatureLayer} from "@mapgis/webclient-common"
    // 添加图层
    const igsFeatureLayer = new IGSFeatureLayer({
      // 服务基地址
      url: 'http://{ip}:{port}/igs/rest/services/{ServiceName}/FeatureServer',
      // 指定图层id
      sublayerId: 2
    })
    map.add(igsFeatureLayer)

    <caption><h7 id='IGSFeatureLayer-url'>添加IGS要素图层-在基地址中指定图层id</h7></caption
    // ES5引入方式
    const { IGSFeatureLayer } = Zondy.Layer
    // ES6引入方式
    import {  IGSFeatureLayer} from "@mapgis/webclient-common"
    const igsFeatureLayer = new IGSFeatureLayer({
      // 服务基地址，再基地址上指定图层id
      url: 'http://{ip}:{port}/igs/rest/services/{ServiceName}/FeatureServer/1'
    })
    map.add(igsFeatureLayer)

添加IGS要素图层-IGS1.0

    // ES5引入方式
    const { IGSFeatureLayer } = Zondy.Layer
    // ES6引入方式
    import {  IGSFeatureLayer} from "@mapgis/webclient-common"
    const igsFeatureLayer = new IGSFeatureLayer({
      // 服务基地址，再基地址上指定图层id
      url: 'http://{ip}:{port}/igs/rest/mrfs/docs/{ServiceName}',
      // 图层id
        sublayerId: '1'
    })
    map.add(igsFeatureLayer)

删除图层

    map.remove(igsFeatureLayer)

设置图层透明度

    // ES5引入方式
    const { IGSFeatureLayer } = Zondy.Layer
    // ES6引入方式
    import {  IGSFeatureLayer} from "@mapgis/webclient-common"
    // 在初始化时设置
    const igsFeatureLayer = new IGSFeatureLayer({
      // 服务基地址，再基地址上指定图层id
      url: 'http://{ip}:{port}/igs/rest/services/{ServiceName}/FeatureServer/1',
      // 设置透明度
      opacity: 1
    })
    map.add(igsFeatureLayer)

    // 在图层加载完毕后设置
    igsFeatureLayer.opacity = 0.5

设置图层可见性

    // ES5引入方式
    const { IGSFeatureLayer } = Zondy.Layer
    // ES6引入方式
    import {  IGSFeatureLayer} from "@mapgis/webclient-common"
    // 在初始化时设置
    const igsFeatureLayer = new IGSFeatureLayer({
      // 服务基地址，再基地址上指定图层id
      url: 'http://{ip}:{port}/igs/rest/services/{ServiceName}/FeatureServer/1',
      // 设置图层可见性
      visible: true
    })
    map.add(igsFeatureLayer)

    // 在图层加载完毕后设置
    igsFeatureLayer.visible = !igsFeatureLayer.visible

图层顺序

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

单值专题图

    // ES5引入方式
    const { IGSFeatureLayer } = Zondy.Layer
    const { UniqueValueRenderer } = Zondy.Renderer
    const { SimpleFillSymbol,SimpleLineSymbol } = Zondy.Symbol
    const { Color } = Zondy
    // ES6引入方式
    import {  IGSFeatureLayer,UniqueValueRenderer,SimpleFillSymbol,SimpleLineSymbol,Color } from "@mapgis/webclient-common"
    const igsFeatureLayer = new IGSFeatureLayer({
      // 服务基地址，当不指定图层名称时，默认查询第一个子图层
      url: 'http://{ip}:{port}/igs/rest/services/{ServiceName}/FeatureServer',
      // 设置渲染样式-单值专题图
      renderer: 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)'
            })
          }
        ]
      })
    })
    map.add(igsFeatureLayer3)

分段专题图

    // ES5引入方式
    const { IGSFeatureLayer } = Zondy.Layer
    const { ClassBreakRenderer } = Zondy.Renderer
    const { SimpleLineSymbol } = Zondy.Symbol
    const { Color } = Zondy
    // ES6引入方式
    import {  IGSFeatureLayer,ClassBreakRenderer,SimpleLineSymbol,Color } from "@mapgis/webclient-common"
    const igsFeatureLayer = new IGSFeatureLayer({
      // 服务基地址，当不指定图层名称时，默认查询第一个子图层
      url: 'http://{ip}:{port}/igs/rest/services/{ServiceName}/FeatureServer',
      // 设置渲染样式-分段专题图
      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 ZColor(123, 124, 110),
              // 线宽
              width: 3
            })
          }
        ]
      })
    })
    map.add(igsFeatureLayer)

统一专题图

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

指定一个gdbp地址来渲染要素

    // ES5引入方式
    const { IGSFeatureLayer } = Zondy.Layer
    // ES6引入方式
    import {  IGSFeatureLayer } from "@mapgis/webclient-common"
    const igsFeatureLayer = new IGSFeatureLayer({
      // 服务基地址，该地址为要素服务1.0地址
      url: "http://{ip}:{port}/igs/rest/mrfs/layer",
      // gdbp地址，在桌面的数据库中右键简单要素类，来获取该地址
      gdbp: "gdbp://MapGisLocal/武汉市/ds/4326矢量/sfcls/武汉市区划4326"
    })
    map.add(igsFeatureLayer)

启用注记

    // ES5引入方式
    const { igsFeatureLayer } = Zondy.Layer
    const { LabelClass ,Font} = Zondy
    const { TextSymbol } = Zondy.Symbol
    // ES6引入方式
    import {  igsFeatureLayer,LabelClass,Font,TextSymbol } 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"
        })
      })
    })
    // 初始化IGS要素图层
    const igsFeatureLayer = new igsFeatureLayer({
      // 服务基地址，当不指定图层名称时，默认查询第一个子图层
      url: 'http://{ip}:{port}/igs/rest/services/{ServiceName}/FeatureServer',
      // 可在此处设置渲染样式
      renderer: {},
      // 启用注记
      labelsVisible: true,
      // 设置注记样式
      labelingInfo: [labelClass]
    })
    // 添加到容器中
    map.add(igsFeatureLayer)

### 继承关系

- FeatureLayer

### 成员变量

类型: Array.<String>

#### # capabilities

服务支持的能力

查看源代码 common/document/layer/igserver/IGSFeatureLayer.js, line 467

类型: String

#### # definitionExpression

要素过滤条件，类似sql语句

查看源代码 common/document/layer/igserver/IGSFeatureLayer.js, line 892

类型: ElevationInfo

#### # elevationInfo

三维描述信息

Inherited From:
  - FeatureLayer#elevationInfo

查看源代码 common/document/layer/baseLayer/FeatureLayer.js, line 27

类型: String

#### # gdbp

gdbp数据源

查看源代码 common/document/layer/igserver/IGSFeatureLayer.js, line 457

类型: String

#### # geometryType

几何类型

Inherited From:
  - FeatureLayer#geometryType

查看源代码 common/document/layer/baseLayer/FeatureLayer.js, line 32

类型: Array.<LabelClass>

#### # labelingInfo

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

查看源代码 common/document/layer/igserver/IGSFeatureLayer.js, line 487

类型: Boolean

#### # labelsVisible

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

查看源代码 common/document/layer/igserver/IGSFeatureLayer.js, line 477

类型: Array.<String>

#### # outFields

服务返回的要素字段名数组

查看源代码 common/document/layer/igserver/IGSFeatureLayer.js, line 462

类型: BaseRenderer

#### # renderer

渲染器

Inherited From:
  - FeatureLayer#renderer

查看源代码 common/document/layer/baseLayer/FeatureLayer.js, line 37

类型: String

#### # renderMode

渲染模式，分为客户端渲染'client'和服务器端渲染'server'

查看源代码 common/document/layer/igserver/IGSFeatureLayer.js, line 497

类型: Number | String

#### # sublayerId

要素图层index

查看源代码 common/document/layer/igserver/IGSFeatureLayer.js, line 472

类型: Boolean

#### # supportArc3

是否返回三点弧段数据，为true则返回三个点代表三点弧段，否则返回离散的点

查看源代码 common/document/layer/igserver/IGSFeatureLayer.js, line 482

### 方法

#### # static fromJSON(jsonopt)

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

#### 参数:

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

查看源代码 common/document/layer/igserver/IGSFeatureLayer.js, line 754

##### 示例

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

    const json = {
      // 服务基地址
      url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/FeatureServer',
    }
    const igsFeatureLayer = new Zondy.Layer.IGSFeatureLayer.fromJSON(json)

#### # clone()

克隆方法

Inherited From:
  - FeatureLayer#clone

查看源代码 common/document/layer/baseLayer/FeatureLayer.js, line 66

返回值:

图层

类型: FeatureLayer

#### # load()

加载图层资源

查看源代码 common/document/layer/igserver/IGSFeatureLayer.js, line 592

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

##### 示例

不加载图层，仅获取图层信息

    // 初始化图层
    const igsFeatureLayer = new Zondy.Layer.IGSFeatureLayer({
      // 服务基地址
      url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/FeatureServer',
    });
    igsFeatureLayer.load().then((result) => {
      // 获取完图层信息
      console.log(result)
    })

#### # queryFeatures(queryOptions)

指定图层的要素查询

#### 参数:

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

查看源代码 common/document/layer/igserver/IGSFeatureLayer.js, line 695

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

##### 示例

指定图层的要素查询

    igsFeatureLayer.queryFeatures({
      // 图层id
      sublayerId: '0',
      // where语句
      where: "NAME='天门市'"
    }).then((result) => {
      console.log('查询结果:', result)
    })

#### # queryFeaturesCount(queryOptions)

查询要素数量,仅支持igs2.0

#### 参数:

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

查看源代码 common/document/layer/igserver/IGSFeatureLayer.js, line 730

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

##### 示例

查询要素数量

    igsFeatureLayer.queryFeaturesCount({
      // 图层id
      sublayerId: '0',
      // where语句
      where: "NAME='天门市'"
    }).then((result) => {
      console.log('查询结果:', result)
    })

#### # toJSON()

转换为json对象

Overrides:
  - FeatureLayer#toJSON

查看源代码 common/document/layer/igserver/IGSFeatureLayer.js, line 771

返回值:

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 | 事件接收对象

查看源代码 common/document/layer/igserver/IGSFeatureLayer.js, line 425

##### 示例

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

    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 === 'renderer'){
          console.log("图层样式更新完毕事件:", event);
        }
      }
    });