HeatLayer

new mars3d.layer.HeatLayer(options, rectanglePadding)

热力图图层,基于heatmap.js库渲染。 【需要引入 heatmap.js 库 和 mars3d-heatmap 插件库】

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

参数对象,包括以下:

参数名称 类型 描述信息
positions Array.<LngLatPoint> | Array.<Cesium.Cartesian3> | Array.<object> 可选

坐标数据集合(含value热力值),有热力值时,传入LatLngPoint数组,热力值为value字段。示例:[{lat:31.123,lng:103.568,value:1.2},{lat:31.233,lng:103.938,value:2.3}]

rectangle object 可选

坐标的矩形区域范围,默认内部自动计算

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

最小经度值

xmax number

最大经度值

ymin number

最小纬度值

ymax number

最大纬度值

rectanglePadding number 0.2 可选

如果未设置rectangle时自动计算的边界扩大的范围比例

options.max number 可选

数据集的value值上限,默认内部计算

options.min number 可选

数据集的value值下限,默认内部计算

options.heatStyle object 可选

heatmap热力图本身configObject参数,详情也可查阅 heatmap文档

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

最大不透明度,取值范围0.0-1.0。

minOpacity number 0.1 可选

最小不透明度,取值范围0.0-1.0。

blur number 0.85 可选

将应用于所有数据点的模糊因子。模糊因子越高,渐变将越平滑

radius number 25 可选

每个数据点将具有的半径(如果未在数据点本身上指定)

gradient object 可选

色带,表示渐变的对象,示例:{ 0.4: 'blue', 0.6: 'green',0.8: 'yellow',0.9: 'red' }

options.style object | RectanglePrimitive.StyleOptions 可选

矢量对象样式参数,还包括:

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

渲染类型,支持:"image":ImageLayer图片展示, "graphic":普通RectanglePrimitive矢量矩形展示, "arc":曲面RectanglePrimitive矢量矩形展示

opacity number 1 可选

透明度

height number 0 可选

高度,相对于椭球面的高度。

clampToGround boolean false 可选

是否贴地

多个参数 object 可选

rectangle矩形支持的样式, tip: 是指支持多个其他参数

arc boolean false 可选

是否显示曲面热力图,同 type:"arc"

arcRadiusScale number 1.5 可选

曲面热力图时,radius扩大比例

arcBlurScale number 1.5 可选

曲面热力图时,blur扩大比例

arcDirection number 1 可选

曲面热力图时,凹陷的方向,1向上,-1向下,0双面

diffHeight number 可选

曲面热力图时,曲面的起伏差值高,默认根据数据范围的比例自动计算。

options.canvasWidth number document.body.clientWidth 可选

Canvas的宽度尺寸(单位:像素),调大精度更高,但过大容易内存溢出

options.redrawZoom boolean 可选

视角缩放时是否进行按新的raduis进行渲染。

options.redrawRatio number 1.0 可选

redrawZoom时值变化的比例。

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

图层id标识

options.pid string | number 可选

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

options.name string 可选

图层名称

options.show boolean true 可选

图层是否显示

options.eventParent BaseClass | boolean 可选

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

options.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

options.flyTo boolean 可选

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

options.allowDrillPick boolean | function 可选

是否允许鼠标穿透拾取

继承

成员(属性)

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 coordinates : Array.<Array>

位置坐标(数组对象),示例 [ [123.123456,32.654321,198.7], [111.123456,22.654321,50.7] ]

enabledEvent : boolean

设置事件的启用和禁用状态

继承自:

readonly hasOpacity : boolean

是否可以调整透明度

继承自:

heatStyle : object

heatmap热力图本身configObject参数,详情也可查阅 heatmap文档

id : string|number

对象的id标识

继承自:

readonly isAdded : boolean

是否已添加到地图

继承自:

readonly isDestroy : boolean

是否已经销毁了

继承自:

readonly isPrivate : boolean

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

继承自:

readonly layer : GraphicLayer

矢量数据图层

name : string

名称

继承自:

opacity : number

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

继承自:

readonly options : object

当前类的构造参数

继承自:

pid : string|number

对象的pid标识

继承自:

positions : Array.<Cesium.Cartesian3>|Array.<LngLatPoint>

坐标数据集合(含value热力值),示例:[{lat:31.123,lng:103.568,value:1.2},{lat:31.233,lng:103.938,value:2.3}] 。 平滑更新建议使用setPositions方法

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

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

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

readonly rectangle : Cesium.Rectangle

坐标数据对应的矩形边界

show : boolean

显示隐藏状态

继承自:

readonly state : State

当前对象的状态

继承自:

style : RectanglePrimitive.StyleOptions

矩形的样式参数

templateValues : object

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

继承自:

readonly type : string

图层类型

继承自:

方法

addEventParent(obj)BaseClass

添加抛出事件到父类,它将接收传播的事件

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

父类对象

返回值:

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

继承自:

addPosition(item)void

添加新的坐标点(含热力值)

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

坐标点(含热力值),示例: {lat:31.123,lng:103.568,value:1.2}

返回值:

addTo(map)BaseLayer

添加到地图上,同 map.addThing

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

地图对象

返回值:

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

继承自:

clear()void

清除矢量对象

返回值:

destroy(noDel)void

销毁当前对象

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

false:会自动delete释放所有属性,true:不delete绑定的变量

返回值:

继承自:

fire(type, data, propagate)BaseClass

触发指定类型的事件。

参数名称 类型 描述信息
type EventType | string

事件类型

data object 可选

传输的数据或对象,可在事件回调方法中event对象中获取进行使用

propagate BaseClass 可选

将事件传播给父类 (用addEventParent设置)

返回值:

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

继承自:

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

继承自:

getAvailabilityJson()Array.<object>

获取时间范围的简单对象数组(转为相对map.clock.startTime的相对数字)

返回值:

时间对象列表

继承自:

getAvailabilityShow(time)boolean

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

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

指定时间

返回值:

显示隐藏 状态

继承自:

getPointData(item)object

根据坐标点获取其对应的value值和颜色值

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

坐标点

返回值:

格式为 {"x":2081,"y":767,"value":3,"color":"rgba(209,231,0,195)"}

getRealShow(time)boolean

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

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

当前时间

返回值:

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

继承自:

getRectangle(options)Cesium.Rectangle|object

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

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

控制参数

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

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

返回值:

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

hasEventParent(obj)boolean

是否绑定了抛出事件到指定父类

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

父类对象

返回值:

是否绑定了抛出事件

继承自:

listens(type, propagate)boolean

是否有绑定指定的事件

参数名称 类型 描述信息
type EventType | string

事件类型

propagate BaseClass 可选

是否判断指定的父类 (用addEventParent设置的)

返回值:

是否存在

继承自:

off(types, fn, context)BaseClass

解除绑定指定类型事件监听器

参数名称 类型 描述信息
types EventType | string | Array.<EventType> 可选

事件类型,未传值时解绑所有事件

fn function 可选

绑定的监听器回调方法,未传值时解绑所有指定类型对应事件,特殊说明:map.on监听的Cesium相关原生事件时必须传入该参数

context object 可选

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

返回值:

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

继承自:

on(types, fn, context)BaseClass

绑定指定类型事件监听器, 支持在监听中调用 event.stopPropagation(); 阻止事件冒泡

参数名称 类型 描述信息
types EventType | string | Array.<EventType> | Array.<string> | object

事件类型

fn function

绑定的监听器回调方法

context object 可选

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

返回值:

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

继承自:

once(types, fn, context)BaseClass

绑定一次性执行的指定类型事件监听器 与on类似,监听器只会被触发一次,然后被删除。

参数名称 类型 描述信息
types EventType | string | Array.<EventType>

事件类型

fn function

绑定的监听器回调方法

context object 可选

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

返回值:

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

继承自:

remove(destroy)void

从地图上移除,同map.removeThing

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

是否调用destroy释放

返回值:

继承自:

removeEventParent(obj)BaseClass

移除抛出事件到父类

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

父类对象

返回值:

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

继承自:

setOptions(options, funOptions)BaseLayer

更新图层参数

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

与类的构造方法参数相同

funOptions object 可选

方法参数

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

是否合并参数, 如是完整覆盖不合并老的options,请传入fasle

返回值:

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

继承自:

setPositions(arr)void

更新所有坐标点(含热力值)数据

参数名称 类型 描述信息
arr Array.<Cesium.Cartesian3> | Array.<LngLatPoint>

坐标点(含热力值),示例:[{lat:31.123,lng:103.568,value:1.2},{lat:31.233,lng:103.938,value:2.3}]

返回值:

toJSON()object

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

返回值:

Json简单对象

继承自:

updateRadius(radius)void

按新的radius进行渲染

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

每个数据点将具有的半径

返回值: