GroupLayer

new mars3d.layer.GroupLayer(options)

图层组,可以用于将多个图层组合起来方便控制(比如将 卫星底图 和 文字注记层 放在一起控制管理),或用于 图层管理 的图层分组节点(虚拟节点)。

参数名称 类型 描述信息
options object 可选

参数对象,包括以下:

参数名称 类型 默认值 描述信息
layers Array.<object> 可选

子图层数组,每个子图层的配置见按各类型图层配置即可。

id string | number mars3d.Util.createGuid() 可选

图层id标识

pid string | number -1 可选

图层父级的id,一般图层管理中使用

name string '' 可选

图层名称

show boolean true 可选

图层是否显示

eventParent BaseClass | boolean 可选

指定的事件冒泡对象,默认为map对象,false时不冒泡

center object 可选

图层自定义定位视角 Map#setCameraView

参数名称 类型 描述信息
lng number

经度值, 180 - 180

lat number

纬度值, -90 - 90

alt number 可选

高度值

heading number 可选

方向角度值,绕垂直于地心的轴旋转角度, 0至360

pitch number 可选

俯仰角度值,绕纬度线旋转角度, -90至90

roll number 可选

翻滚角度值,绕经度线旋转角度, -90至90

flyTo boolean 可选

加载完成数据后是否自动飞行定位到数据所在的区域。

flyToOptions object 可选

加载完成数据后是否自动飞行定位到数据所在的区域的对应 BaseLayer#flyTo方法参数。

继承

成员(属性)

readonly arrLayer : Array.<BaseLayer>|Array.<GraphicLayer>

子图层对象数组

availability : Cesium.TimeIntervalCollection

指定时间范围内显示该对象 [提示:仅部分子类实现,非所有对象都支持]

继承自:
使用示例:
// 普通传值方式,多个【建议】
layer.availability = [
  { start: "2017-08-25 08:00:00", stop: "2017-08-25 08:01:20", isStartIncluded: true, isStopIncluded: false },
  { start: "2017-08-25 09:00:00", duration: 10 } //支持不配置stop,直接配置duration秒数时长
]
// 也支持相对时间的 秒数 传值(相对于map.clock.startTime)
layer.availability = [
  { start: 0, stop: 10, isStartIncluded: true, isStopIncluded: false },
  { start:30, duration: 10 } //支持不配置stop,直接配置duration秒数时长
]

// 普通传值方式,单个
layer.availability = { start: "2017-08-25 08:00:00", stop: "2017-08-25 08:01:20", isStartIncluded: true, isStopIncluded: false }


// cesium原生写法, 多个
layer.availability = new Cesium.TimeIntervalCollection([
  new Cesium.TimeInterval({
    start: Cesium.JulianDate.fromDate(new Date("2017-08-25 08:00:00")),
    stop: Cesium.JulianDate.fromDate(new Date("2017-08-25 08:00:20")),
    isStartIncluded: true,
    isStopIncluded: false
  }),
])

// cesium原生写法,单个
layer.availability = new Cesium.TimeInterval({
  start: Cesium.JulianDate.fromDate(new Date("2017-08-25 08:00:00")),
  stop: Cesium.JulianDate.fromDate(new Date("2017-08-25 08:00:20")),
  isStartIncluded: true,
  isStopIncluded: false
})

readonly hasChildLayer : boolean

是否有子图层

readonly hasEmptyGroup : boolean

是否空组 ,空组目前就图层管理用于图层分组节点(虚拟节点)。

readonly hasOpacity : boolean

是否可以调整透明度

readonly hasZIndex : boolean

是否可以调整图层顺序(在同类型图层间)

id : string|number

对象的id标识

继承自:

readonly isAdded : boolean

是否已添加到地图

继承自:

readonly isDestroy : boolean

是否已经销毁了

继承自:

readonly isPrivate : boolean

是否Mars3D内部的私有对象,如标绘拖拽点等

继承自:

readonly length : number

子图层的个数

name : string

名称 标识

继承自:

opacity : number

透明度,取值范围:0.0-1.0

继承自:

pid : string|number

对象的pid标识

继承自:

readonly readyPromise : Promise.<(BaseLayer|object)>

获取图层完成解析加载完成的Promise承诺, 等价于load事件(区别在于load事件必须在load完成前绑定才能监听)。

继承自:
使用示例:
tiles3dLayer.readyPromise.then(function(layer) {
    console.log("load完成", layer)
  })

show : boolean

显示隐藏状态

继承自:

readonly state : State

当前对象的状态

继承自:

templateValues : object

图层中统一的url模版,比如可以将服务url前缀统一使用模板,方便修改或动态配置。

继承自:

readonly type : string

图层类型

继承自:

zIndex : number

图层顺序,数字大的在上面。(当hasZIndex为true时)

方法

addChildsToMap()GroupLayer

添加所有子图层到map上

返回值:

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

addLayer(childlayer)GroupLayer

添加子图层,并绑定关联关系。

参数名称 类型 描述信息
childlayer BaseLayer | GraphicLayer

子图层对象

返回值:

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

addTo(map)BaseLayer

添加到地图上,同 map.addThing

参数名称 类型 描述信息
map Map

地图对象

返回值:

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

继承自:

bindContextMenu(content, options)BaseGraphicLayer

绑定右键菜单

参数名称 类型 默认值 描述信息
content Array.<object>

右键菜单配置数组,数组中每一项包括:

参数名称 类型 描述信息
text string | function 可选

菜单文字

icon string 可选

图标,可以是:图片url路径、base64字符串、svg字符串、字体图标class名

show function | boolean 可选

菜单项是否显示的回调方法

callback function 可选

菜单项单击后的回调方法

children Array.<object> 可选

当有二级子菜单时,配置数组。

options object {} 可选

控制参数

参数名称 类型 描述信息
offsetX number 可选

用于非规则对象时,横向偏移的px像素值

offsetY number 可选

用于非规则对象时,垂直方向偏移的px像素值

返回值:

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

继承自:
使用示例:
//在layer上绑定右键菜单
      graphicLayer.bindContextMenu([
        {
          text: '删除对象',
          icon: 'fa fa-trash-o',
          callback: function (e) {
            let graphic = e.graphic
            if (graphic) {
              graphicLayer.removeGraphic(graphic)
            }
          },
        },
        {
          text: '计算长度',
          icon: 'fa fa-medium',
          show: function (e) {
            let graphic = e.graphic
            return graphic.type === 'polyline'
          },
          callback: function (e) {
            let graphic = e.graphic
            let strDis = mars3d.MeasureUtil.formatDistance(graphic.distance)
            alert('该对象的长度为:' + strDis)
          },
        },
      ])

bindHighlight(options)void

绑定鼠标移入或单击后的 对象高亮

参数名称 类型 描述信息
options object 可选

参数:

参数名称 类型 默认值 描述信息
type string 'mouseOver' 可选

事件类型,默认为鼠标移入高亮,也可以指定'click'单击高亮。

多个参数 string 可选

高亮的样式,具体见各GraphicType矢量数据的style参数。

返回值:

继承自:

bindPopup(content, options)BaseGraphicLayer

绑定鼠标单击对象后的弹窗。

参数名称 类型 描述信息
content string | function

弹窗内容html字符串,或者回调方法。

options Popup.StyleOptions 可选

控制参数

返回值:

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

继承自:

bindTooltip(content, options)BaseGraphicLayer

绑定鼠标移入的弹窗

参数名称 类型 描述信息
content string | function

弹窗内容html字符串,或者回调方法。

options Tooltip.StyleOptions 可选

控制参数

返回值:

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

继承自:

closeContextMenu()BaseGraphicLayer

关闭右键菜单

返回值:

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

继承自:

closeHighlight()void

清除已高亮的矢量对象

返回值:

继承自:

closePopup()BaseGraphicLayer

关闭弹窗

返回值:

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

继承自:

closeSmallTooltip()BaseGraphicLayer

关闭小提示窗

返回值:

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

继承自:

closeTooltip()BaseGraphicLayer

关闭弹窗

返回值:

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

继承自:

eachLayer(method, context)GroupLayer

遍历每一个子图层并将其作为参数传递给回调函数

参数名称 类型 描述信息
method function

回调方法

context object 可选

侦听器的上下文(this关键字将指向的对象)。

返回值:

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

async flyTo(options)Promise.<boolean>

飞行定位至图层数据所在的视角

参数名称 类型 默认值 描述信息
options object {} 可选

参数对象:

参数名称 类型 默认值 描述信息
radius number 可选

点状数据时,相机距离目标点的距离(单位:米)

scale number 1.2 可选

线面数据时,缩放比例,可以控制视角比矩形略大一些,这样效果更友好。

heading number 可选

方向角度值,绕垂直于地心的轴旋转角度, 0至360

pitch number 可选

俯仰角度值,绕纬度线旋转角度, -90至90

roll number 可选

翻滚角度值,绕经度线旋转角度, -90至90

minHeight number 可选

定位时相机的最小高度值,用于控制避免异常数据

maxHeight number 可选

定位时相机的最大高度值,用于控制避免异常数据

height number 可选

矩形区域时的高度值, 默认取地形高度值

duration number 可选

飞行时间(单位:秒)。如果省略,SDK内部会根据飞行距离计算出理想的飞行时间。

complete Cesium.Camera.FlightCompleteCallback 可选

飞行完成后要执行的函数。

cancel Cesium.Camera.FlightCancelledCallback 可选

飞行取消时要执行的函数。

endTransform Cesium.Matrix4 可选

变换矩阵表示飞行结束时相机所处的参照系。

maximumHeight number 可选

飞行高峰时的最大高度。

pitchAdjustHeight number 可选

如果相机飞得比这个值高,在飞行过程中调整俯仰以向下看,并保持地球在视口。

flyOverLongitude number 可选

地球上的两点之间总有两条路。这个选项迫使相机选择战斗方向飞过那个经度。

flyOverLongitudeWeight number 可选

仅在通过flyOverLongitude指定的lon上空飞行,只要该方式的时间不超过flyOverLongitudeWeight的短途时间。

convert boolean true 可选

是否将目的地从世界坐标转换为场景坐标(仅在不使用3D时相关)。

easingFunction Cesium.EasingFunction.Callback 可选

控制在飞行过程中如何插值时间。

返回值:

如果飞行成功则解析为true的承诺,如果当前未在场景中可视化目标或取消飞行,则为false的Promise

继承自:

getAvailabilityShow(time)boolean

获取指定时间下的时序对应的 显示隐藏 状态

参数名称 类型 描述信息
time Cesium.JulianDate

指定时间

返回值:

显示隐藏 状态

继承自:

getContextMenu()Array.<object>

获取绑定的右键菜单数组

返回值:

右键菜单数组

继承自:

getInMapChilds()Array.<BaseLayer>|Array.<GraphicLayer>

获取地图所有的子图层对象(包括pid和id关联的图层)

返回值:

所有子图层对象

getLayer(name)BaseLayer|GraphicLayer

根据id或name属性获取图层

参数名称 类型 描述信息
name string | number

图层id或name值

返回值:

图层对象

getLayerById(id)BaseLayer|GraphicLayer|*

根据ID或取图层

参数名称 类型 描述信息
id string | number

图层id

返回值:

图层对象

getLayers()Array.<BaseLayer>|Array.<GraphicLayer>

获取所有内置子图层对象

返回值:

所有子图层对象

getRealShow(time)boolean

获取当前对象真实实际的显示状态

参数名称 类型 描述信息
time Cesium.JulianDate

当前时间

返回值:

真实的实时显示状态,当时序范围外,被聚合时返回的是false

继承自:

getRectangle(isFormat)Cesium.Rectangle|object

获取图层内所有数据的 矩形边界值

参数名称 类型 默认值 描述信息
isFormat boolean false 可选

是否格式化,格式化时示例: { xmin: 73.16895, xmax: 134.86816, ymin: 12.2023, ymax: 54.11485 }

返回值:

isFormat:true时,返回格式化对象,isFormat:false时返回Cesium.Rectangle对象

hasContextMenu()boolean

是否有绑定的右键菜单

返回值:

是否有绑定

继承自:

hasLayer(name, excludedLayer)boolean

是否有同名的子图层,一般用于新增时判断

参数名称 类型 描述信息
name string

图层名称

excludedLayer BaseLayer 可选

可以指定不进行判断的图层,比如当前图层本身

返回值:

是否同名

hasPopup()boolean

是否存在Popup绑定,判断图层及内部所有矢量数据

返回值:

是否存在Popup绑定

继承自:

hasTooltip()boolean

是否绑定了tooltip

返回值:

是否绑定

继承自:

openContextMenu(position)BaseGraphicLayer

打开右键菜单

参数名称 类型 描述信息
position BaseGraphic | Cesium.Cartesian3

矢量对象 或 显示的位置

返回值:

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

继承自:

openHighlight(graphic, event)void

高亮对象

参数名称 类型 描述信息
graphic BaseGraphic

高亮的矢量对,类型支持GraphicType

event object 可选

事件对象

返回值:

继承自:

openPopup(position)BaseGraphicLayer

打开绑定的弹窗

参数名称 类型 描述信息
position BaseGraphic | LngLatPoint | Cesium.Cartesian3

矢量对象 或 显示的位置

返回值:

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

继承自:

openSmallTooltip(position, message)BaseGraphicLayer

显示小提示窗,一般用于鼠标操作的提示。

参数名称 类型 描述信息
position Cesium.Cartesian2 | Cesium.Cartesian3

显示的屏幕坐标位置 或 笛卡尔坐标位置

message *

显示的内容

返回值:

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

继承自:

openTooltip(position)BaseGraphicLayer

打开绑定的tooltip弹窗

参数名称 类型 描述信息
position BaseGraphic | LngLatPoint | Cesium.Cartesian3

graphic矢量对象 或 显示的位置

返回值:

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

继承自:

reload()void

重新加载图层

返回值:

remove(destroy)void

从地图上移除,同map.removeThing

参数名称 类型 描述信息
destroy boolean 可选

是否调用destroy释放

返回值:

继承自:

removeAllLayer()void

移除所有子图层

返回值:

removeLayer(childlayer)GroupLayer

移除子图层,并解除关联关系。

参数名称 类型 描述信息
childlayer BaseLayer | GraphicLayer

子图层对象

返回值:

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

removeMapChilds()GroupLayer

将所有子图层从map中移除

返回值:

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

setOptions(options)BaseLayer

更新图层参数

参数名称 类型 描述信息
options object

与类的构造方法参数相同

返回值:

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

继承自:

toBottom()void

将当前图层在map中层级进行 置底(只对同类型图层间有效)

返回值:

toJSON()object

将图层转为Json简单对象,用于存储后再传参加载

返回值:

Json简单对象

继承自:

toTop()void

将当前图层在map中层级进行 置顶(只对同类型图层间有效)。

返回值:

unbindContextMenu(bubbling)BaseGraphicLayer

解除绑定的右键菜单

参数名称 类型 默认值 描述信息
bubbling boolean false 可选

单击事件中是否继续冒泡查找

返回值:

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

继承自:

unbindHighlight()void

解绑鼠标移入或单击后的高亮处理

返回值:

继承自:

unbindPopup(bubbling)BaseGraphicLayer

解除绑定的鼠标单击对象后的弹窗。

参数名称 类型 默认值 描述信息
bubbling boolean false 可选

单击事件中是否继续冒泡查找

返回值:

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

继承自:

unbindTooltip(bubbling)BaseGraphicLayer

解除绑定的鼠标移入对象后的弹窗。

参数名称 类型 默认值 描述信息
bubbling boolean false 可选

单击事件中是否继续冒泡查找

返回值:

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

继承自: