类名 M3DModelCacheLayer

# new M3DModelCacheLayer(options)

M3D缓存图层

参数

名称 类型 描述
options Object

构造参数

url String

服务基地址,支持文件服务和IGS的M3D服务
文件服务基地址格式:必须是.mcj格式的文件
M3D服务基地址格式(IGS1.0):无此服务
M3D服务基地址格式(IGS2.0):http://{ip}:{port}/igs/rest/services/{服务名}/M3dServer

renderer BaseRenderer

渲染器,
目前支持如下样式:
1、单值专题图
2、分段专题图
参考示例:
[1、单值专题图]
[2、分段专题图]
[3、单值专题图-Cesium原生方式]
[4、分段专题图-Cesium原生方式]

extendOptions Object

初始化场景图层的额外参数,三维引擎专有的初始化参数请传入此对象

extendProps Object

存储额外参数的属性

支持如下方法:
[1、加载图层资源]
[2、通过传入的json构造并返回一个新的图层对象]
[3、导出为json对象]
[4、克隆图层对象]
[5、通过url构造图层对象]

示例

初始化模型缓存图层

// ES5引入方式
const { M3DModelCacheLayer } = Zondy.Layer
// ES6引入方式
import { M3DModelCacheLayer } from "@mapgis/webclient-common"
const layer = new M3DModelCacheLayer({
  // 服务基地址
  url: '服务基地址'
  // Cesium引擎的额外初始化参数
  extendOptions: {
    // 开启自动跳转
    autoReset: true
  }
});

单值专题图

// ES5引入方式
const { M3DModelCacheLayer } = Zondy.Layer
const { UniqueValueRenderer } = Zondy.Renderer
const { SimpleFillSymbol,SimpleLineSymbol } = Zondy.Symbol
const { Color } = Zondy
// ES6引入方式
import { M3DModelCacheLayer,UniqueValueRenderer,SimpleFillSymbol,SimpleLineSymbol,Color } from "@mapgis/webclient-common"
// 构造单值渲染器
const renderer = new UniqueValueRenderer({
  // 专题图过滤字段名
  field: "字段名",
  // 单值专题图过滤条件数组
  uniqueValueInfos: [
    {
      // 指定字段值
      value: '过滤字段值1',
      // 匹配到该值后的样式
      // M3D专题图仅支持SimpleFillSymbol符号
      symbol: new SimpleFillSymbol({
        // 填充颜色
        color: new Color(255, 0, 0)
      })
    },
    {
      // 指定字段值
      value: '过滤字段值2',
      // 匹配到该值后的样式
      // M3D专题图仅支持SimpleFillSymbol符号
      symbol: new SimpleFillSymbol({
        // 填充颜色
        color: 'rgb(255, 123, 220)'
      })
    }
  ]
})
// 构造模型缓存图层
const layer = new M3DModelCacheLayer({
  // 服务基地址
  url: '服务基地址',
  // 设置专题图渲染器
  renderer: renderer,
  // Cesium引擎的额外初始化参数
  extendOptions: {
    // 开启自动跳转
    autoReset: true
  }
});

分段专题图

// ES5引入方式
const { M3DModelCacheLayer } = Zondy.Layer
const { ClassBreakRenderer } = Zondy.Renderer
const { SimpleFillSymbol } = Zondy.Symbol
const { Color } = Zondy
// ES6引入方式
import { M3DModelCacheLayer,ClassBreakRenderer,SimpleFillSymbol,Color } from "@mapgis/webclient-common"
// 构造分段渲染器
const renderer = new ClassBreakRenderer({
  // 专题图过滤字段名
  field: "字段名",
  // 分段专题图过滤条件数组
  classBreakInfos: [
    {
      // 最小过滤范围,field对应的值大于等于minValue
      minValue: 0,
      // 最大过滤范围,field对应的值小于maxValue
      maxValue: 2,
      // 匹配到该值后的样式
      // M3D专题图仅支持SimpleFillSymbol符号
      symbol: new SimpleFillSymbol({
        // 填充颜色
        color: new Color(255, 0, 0)
      })
    },
    {
      // 最小过滤范围,field对应的值大于等于minValue
      minValue: 3,
      // 最大过滤范围,field对应的值小于maxValue
      maxValue: 5,
      // 匹配到该值后的样式
      // M3D专题图仅支持SimpleFillSymbol符号
      symbol: new SimpleFillSymbol({
        // 填充颜色
        color: 'rgb(255, 123, 220)'
      })
    }
  ]
})
// 构造模型缓存图层
const layer = new M3DModelCacheLayer({
  // 服务基地址
  url: '服务基地址',
  // 设置专题图渲染器
  renderer: renderer,
  // Cesium引擎的额外初始化参数
  extendOptions: {
    // 开启自动跳转
    autoReset: true
  }
});

单值专题图-Cesium原生方式

// ES5引入方式
const { M3DModelCacheLayer } = Zondy.Layer
// ES6引入方式
import { M3DModelCacheLayer } from "@mapgis/webclient-common"
// 构造Cesium原生渲染器
const renderer = {
  // 专题图过滤字段名
  field: "字段名",
  // 专题图类型-分段
  type: "class-breaks",
  // 分段专题图过滤条件数组
  classBreakInfos: [{
    // 最小过滤范围,field对应的值大于等于minValue
    minValue: 1,
    // 最大过滤范围,field对应的值小于maxValue
    maxValue: 7,
    // 渲染符号
    symbol: {
      // 渲染类型为M3D
      type: 'mesh-3d',
      // 覆盖物图层
      symbolLayers: [{
        // 图层类型-颜色填充
        type: "fill",
        // 图层材质
        material: {
          // 填充颜色
          color: Cesium.Color.ANTIQUEWHITE
        }
      }]
    }
  }]
}
// 构造模型缓存图层
const layer = new M3DModelCacheLayer({
  // 服务基地址
  url: '服务基地址',
  // Cesium引擎的额外初始化参数
  extendOptions: {
    // 开启自动跳转
    autoReset: true,
    // 设置专题图渲染器
    renderer: renderer
  }
});

分段专题图-Cesium原生方式

// ES5引入方式
const { M3DModelCacheLayer } = Zondy.Layer
// ES6引入方式
import { M3DModelCacheLayer } from "@mapgis/webclient-common"
// 构造Cesium原生渲染器
const renderer = {
  // 专题图过滤字段名
  field: "字段名",
  // 专题图类型-单值
  type: "unique-value",
  // 单值专题图过滤条件数组
  uniqueValueInfos: [
    // 指定字段值
    value: '过滤字段值',
    // 渲染符号
    symbol: {
      // 渲染类型为M3D
      type: 'mesh-3d',
      // 覆盖物图层
      symbolLayers: [{
        // 图层类型-颜色填充
        type: "fill",
        // 图层材质
        material: {
          // 填充颜色
          color: new Cesium.Color(0.0, 0.0, 1.0, 0.5)
        }
      }]
    }
  ]
};
// 构造模型缓存图层
const layer = new M3DModelCacheLayer({
  // 服务基地址
  url: '服务基地址',
  // Cesium引擎的额外初始化参数
  extendOptions: {
    // 开启自动跳转
    autoReset: true,
    // 设置专题图渲染器
    renderer: renderer
  }
});

继承关系

成员变量

成员变量概述

名称 类型 描述
boundingVolume Object

模型外包盒

copyright String

版权所有

description String

描述信息

extendOptions Object

初始化图层的额外参数,三维引擎专有的初始化参数请传入此对象

extendProps Object

存储额外参数的属性

extent Extent

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

fieldInfo String

服务包含的表字段数组

headers String

设置服务请求头

httpMethod String

http请求方式

id String

图层id

index Number

图层顺序

loaded Boolean

是否加载完毕

loadStatus String

图层加载状态

maxScale Number

最大显示比例尺,图层在视图中可见的最大比例尺(最放大)。如果地图被放大到超过这个比例,图层将不可见。默认值为0,0表示图层没有最大比例尺、可见性不受最大比例尺限制。maxScale应该始终小于minScale。

minScale Number

最小显示比例尺,图层在视图中可见的最小比例尺(最缩小)。如果地图被缩小到超过这个比例,图层将不可见。默认值为0,0表示图层没有最小比例尺、可见性不受最小比例尺限制。minScale应该始终大于maxScale。

opacity Number

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

position Object

模型位置

renderer BaseRenderer

渲染器

sceneName String

服务名

spatialReference Object

模型坐标系

title String

图层名称

tokenKey String

token名

tokenValue String

token值

type String

图层类型

url String

服务基地址

version String

服务版本号

visible Number

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

成员变量详情

Object

# boundingVolume

模型外包盒

String

版权所有

Inherited From:
String

# description

描述信息

Overrides:
Object

# extendOptions

初始化图层的额外参数,三维引擎专有的初始化参数请传入此对象

Overrides:
Object

# extendProps

存储额外参数的属性

Inherited From:
Extent

# readonly extent

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

Inherited From:
String

# fieldInfo

服务包含的表字段数组

String

# headers

设置服务请求头

Inherited From:
String

# httpMethod

http请求方式

Inherited From:
String

# readonly id

图层id

Inherited From:
Number

# index

图层顺序

Inherited From:
Boolean

# readonly loaded

是否加载完毕

Inherited From:
Default Value:
  • false
String

# readonly loadStatus

图层加载状态

Inherited From:
Default Value:
  • not-loaded
Number

# maxScale

最大显示比例尺,图层在视图中可见的最大比例尺(最放大)。如果地图被放大到超过这个比例,图层将不可见。默认值为0,0表示图层没有最大比例尺、可见性不受最大比例尺限制。maxScale应该始终小于minScale。

Inherited From:
Default Value:
  • 0
Number

# minScale

最小显示比例尺,图层在视图中可见的最小比例尺(最缩小)。如果地图被缩小到超过这个比例,图层将不可见。默认值为0,0表示图层没有最小比例尺、可见性不受最小比例尺限制。minScale应该始终大于maxScale。

Inherited From:
Default Value:
  • 0
Number

# opacity

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

Inherited From:
Object

# position

模型位置

BaseRenderer

# renderer

渲染器

String

# sceneName

服务名

Object

# spatialReference

模型坐标系

Overrides:
String

# title

图层名称

Inherited From:
String

# tokenKey

token名

Inherited From:
Default Value:
  • token
String

# tokenValue

token值

Inherited From:
String

# type

图层类型

Overrides:
String

# url

服务基地址

String

# version

服务版本号

Number

# visible

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

Inherited From:

方法

方法概述

名称 返回值类型 描述
fromJSON 通过json构造并返回图层对象
fromServerUrl IGSMapImageLayer 通过url创建图层对象
clone M3DModelCacheLayer 克隆图层对象
destroy *
isLoaded Boolean

判断图层是否加载成功

load Promise.<M3DModelCacheLayer>

加载图层资源

refresh

刷新图层

toJSON Object 将图层转为json对象

方法详情

# clone()

Overrides:

克隆后的图层对象

M3DModelCacheLayer

# destroy()

Inherited From:
*

# isLoaded()

判断图层是否加载成功

Inherited From:

图层是否加载成功

Boolean

# load()

加载图层资源

Promise.<M3DModelCacheLayer>
示例

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

// ES5引入方式
const { M3DModelCacheLayer } = Zondy.Layer
// ES6引入方式
import { M3DModelCacheLayer } from "@mapgis/webclient-common"
// 初始化图层
const layer = new M3DModelCacheLayer({
  // 服务基地址
  url: '服务基地址',
});
layer.load().then((result) => {
  // 获取完图层信息
  console.log(result)
})

# refresh()

刷新图层

Inherited From:

# toJSON()

Overrides:

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.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.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.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.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.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.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.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);
    }
  }
});