类名 IGSFeatureLayer

# 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

支持如下方法:
[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)

继承关系

成员变量

Array.<String>

# capabilities

服务支持的能力

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

String

# definitionExpression

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

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

String

# geometryType

几何类型

Inherited From:

查看源代码 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

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:

查看源代码 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:

查看源代码 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);
    }
  }
});
构造函数
成员变量
方法
事件