Skip to content

KBE3D / KBCore / Earth

类: Earth

构建管理三维球的主入口

继承

属性

EventType

static EventType: { add: "add"; remove: "remove"; addLayer: "addLayer"; removeLayer: "removeLayer"; addEffect: "addEffect"; removeEffect: "removeEffect"; enable: "enable"; unable: "unable"; show: "show"; hide: "hide"; click: "click"; clickGraphic: "clickGraphic"; clickTileGraphic: "clickTileGraphic"; clickMap: "clickMap"; dblClick: "dblClick"; leftDown: "leftDown"; leftUp: "leftUp"; mouseMove: "mouseMove"; mouseMoveTarget: "mouseMoveTarget"; wheel: "wheel"; rightClick: "rightClick"; rightDown: "rightDown"; rightUp: "rightUp"; middleClick: "middleClick"; middleDown: "middleDown"; middleUp: "middleUp"; mouseDown: "mouseDown"; mouseUp: "mouseUp"; mouseOver: "mouseOver"; mouseOut: "mouseOut"; pinchStart: "pinchStart"; pinchEnd: "pinchEnd"; pinchMove: "pinchMove"; keydown: "keydown"; keyup: "keyup"; cameraMoveStart: "cameraMoveStart"; cameraMoveEnd: "cameraMoveEnd"; cameraChanged: "cameraChanged"; preUpdate: "preUpdate"; postUpdate: "postUpdate"; preRender: "preRender"; postRender: "postRender"; renderError: "renderError"; morphStart: "morphStart"; morphComplete: "morphComplete"; clockTick: "clockTick"; terrainChange: "terrainChange"; tileLoadProgress: "tileLoadProgress"; openPopup: "openPopup"; closePopup: "closePopup"; destroyPopup: "destroyPopup"; changePopupPosition: "changePopupPosition"; showPopup: "showPopup"; hidePopup: "hidePopup"; }

支持的事件类型

add

add: "add" = 'add'

添加对象(图层和earth同时抛出)

remove

remove: "remove" = 'remove'

移除对象(图层和earth同时抛出)

addLayer

addLayer: "addLayer" = 'addLayer'

添加图层(图层和earth同时抛出)

removeLayer

removeLayer: "removeLayer" = 'removeLayer'

移除图层(图层和earth同时抛出)

addEffect

addEffect: "addEffect" = 'addEffect'

添加特效(特效和earth同时抛出)

removeEffect

removeEffect: "removeEffect" = 'removeEffect'

移除特效(特效和earth同时抛出)

enable

enable: "enable" = 'enable'

启用(特效和earth同时抛出)

unable

unable: "unable" = 'unable'

停用(特效和earth同时抛出)

show

show: "show" = 'show'

显示(图层和earth同时抛出)

hide

hide: "hide" = 'hide'

隐藏(图层和earth同时抛出)

click

click: "click" = 'click'

鼠标事件: 左键单击(earth抛出,如果拾取到图元,将“同时”在所在图层(前提是通过图元能找到所在图层)抛出该事件,并在earth抛出‘clickGraphic’或‘clickTileGraphic’)

clickGraphic

clickGraphic: "clickGraphic" = 'clickGraphic'

鼠标事件: 左键单击到矢量或模型数据时(earth抛出)

clickTileGraphic

clickTileGraphic: "clickTileGraphic" = 'clickTileGraphic'

鼠标事件: 左键单击到wms或arcgis瓦片服务的对应矢量数据时(earth抛出)

clickMap

clickMap: "clickMap" = 'clickMap'

鼠标事件: 左键单击地图空白(未单击到矢量或模型数据)时(earth抛出)

dblClick

dblClick: "dblClick" = 'dblClick'

鼠标事件: 左键双击(earth抛出)

leftDown

leftDown: "leftDown" = 'leftDown'

鼠标事件: 左键鼠标按下(如果拾取到图元,将在所在图层(前提是通过图元能找到所在图层)抛出该事件,“否则”在earth抛出)

leftUp

leftUp: "leftUp" = 'leftUp'

鼠标事件: 左键鼠标按下后释放(如果拾取到图元,将在所在图层(前提是通过图元能找到所在图层)抛出该事件,“否则”在earth抛出)

mouseMove

mouseMove: "mouseMove" = 'mouseMove'

鼠标事件: 鼠标移动(earth抛出)

mouseMoveTarget

mouseMoveTarget: "mouseMoveTarget" = 'mouseMoveTarget'

鼠标事件: 鼠标移动拾取目标(earth抛出)

wheel

wheel: "wheel" = 'wheel'

鼠标事件: 鼠标滚轮滚动(earth抛出)

rightClick

rightClick: "rightClick" = 'rightClick'

鼠标事件: 右键单击(如果拾取到图元,将在所在图层(前提是通过图元能找到所在图层)抛出该事件,“否则”在earth抛出)

rightDown

rightDown: "rightDown" = 'rightDown'

鼠标事件: 右键鼠标按下(如果拾取到图元,将在所在图层(前提是通过图元能找到所在图层)抛出该事件,“否则”在earth抛出)

rightUp

rightUp: "rightUp" = 'rightUp'

鼠标事件: 右键鼠标按下后释放(如果拾取到图元,将在所在图层(前提是通过图元能找到所在图层)抛出该事件,“否则”在earth抛出)

middleClick

middleClick: "middleClick" = 'middleClick'

鼠标事件: 中键单击(如果拾取到图元,将在所在图层(前提是通过图元能找到所在图层)抛出该事件,“否则”在earth抛出)

middleDown

middleDown: "middleDown" = 'middleDown'

鼠标事件: 中键鼠标按下(如果拾取到图元,将在所在图层(前提是通过图元能找到所在图层)抛出该事件,“否则”在earth抛出)

middleUp

middleUp: "middleUp" = 'middleUp'

鼠标事件: 中键鼠标按下后释放(如果拾取到图元,将在所在图层(前提是通过图元能找到所在图层)抛出该事件,“否则”在earth抛出)

mouseDown

mouseDown: "mouseDown" = 'mouseDown'

鼠标事件: 鼠标按下 [左中右3键都触发](如果拾取到图元,将在所在图层(前提是通过图元能找到所在图层)抛出该事件,“否则”在earth抛出)

mouseUp

mouseUp: "mouseUp" = 'mouseUp'

鼠标事件: 鼠标按下后释放 [左中右3键都触发](如果拾取到图元,将在所在图层(前提是通过图元能找到所在图层)抛出该事件,“否则”在earth抛出)

mouseOver

mouseOver: "mouseOver" = 'mouseOver'

鼠标事件: 鼠标移入(如果拾取到图元,将在所在图层(前提是通过图元能找到所在图层)抛出该事件,“否则”在earth抛出)

mouseOut

mouseOut: "mouseOut" = 'mouseOut'

鼠标事件: 鼠标移出(如果拾取到图元,将在所在图层(前提是通过图元能找到所在图层)抛出该事件,“否则”在earth抛出)

pinchStart

pinchStart: "pinchStart" = 'pinchStart'

触摸屏事件: (earth抛出)

pinchEnd

pinchEnd: "pinchEnd" = 'pinchEnd'

触摸屏事件: (earth抛出)

pinchMove

pinchMove: "pinchMove" = 'pinchMove'

触摸屏事件: 在触摸屏上两指移动(earth抛出)

keydown

keydown: "keydown" = 'keydown'

键盘事件: 按键按下(earth抛出)

keyup

keyup: "keyup" = 'keyup'

键盘事件: 按键按下后释放(earth抛出)

cameraMoveStart

cameraMoveStart: "cameraMoveStart" = 'cameraMoveStart'

场景事件: 相机开启移动前(earth抛出)

cameraMoveEnd

cameraMoveEnd: "cameraMoveEnd" = 'cameraMoveEnd'

场景事件: 相机移动完成后(earth抛出)

cameraChanged

cameraChanged: "cameraChanged" = 'cameraChanged'

场景事件: 相机位置完成(earth抛出)

preUpdate

preUpdate: "preUpdate" = 'preUpdate'

场景事件: 场景更新前(earth抛出)

postUpdate

postUpdate: "postUpdate" = 'postUpdate'

场景事件: 场景更新后(earth抛出)

preRender

preRender: "preRender" = 'preRender'

场景事件: 场景渲染前(earth抛出)

postRender

postRender: "postRender" = 'postRender'

场景事件: 场景渲染后(earth抛出)

renderError

renderError: "renderError" = 'renderError'

场景事件: 场景渲染失败(earth抛出)

morphStart

morphStart: "morphStart" = 'morphStart'

场景事件: 场景模式(2D/3D/哥伦布)变换前(earth抛出)

morphComplete

morphComplete: "morphComplete" = 'morphComplete'

场景事件: 完成场景模式(2D/3D/哥伦布)变换(earth抛出)

clockTick

clockTick: "clockTick" = 'clockTick'

场景事件: 时钟跳动(earth抛出)

terrainChange

terrainChange: "terrainChange" = 'terrainChange'

场景事件: 地形变化(earth抛出)

tileLoadProgress

tileLoadProgress: "tileLoadProgress" = 'tileLoadProgress'

场景事件: 地图中瓦片加载进度变化(earth抛出)

openPopup

openPopup: "openPopup" = 'openPopup'

Popup事件: 打开弹窗(Popup实例抛出、earth抛出、所在图层抛出)

closePopup

closePopup: "closePopup" = 'closePopup'

Popup事件: 关闭弹窗(Popup实例抛出、earth抛出、所在图层抛出)

destroyPopup

destroyPopup: "destroyPopup" = 'destroyPopup'

Popup事件: 销毁弹窗(Popup实例抛出、earth抛出、所在图层抛出)

changePopupPosition

changePopupPosition: "changePopupPosition" = 'changePopupPosition'

Popup事件: 弹窗位置变化(Popup实例抛出、earth抛出、所在图层抛出)

showPopup

showPopup: "showPopup" = 'showPopup'

Popup事件: 显示Popup(Popup实例抛出、earth抛出、所在图层抛出)

hidePopup

hidePopup: "hidePopup" = 'hidePopup'

Popup事件: 隐藏Popup(Popup实例抛出、earth抛出、所在图层抛出)


EarthCache

static EarthCache: Map<string, Earth>

earth实例缓存


viewerOptions

readonly viewerOptions: ViewerOptions

Cesium.Viewer构造参数


earthOptions

readonly earthOptions: EarthOptions

earth构造参数


viewer

readonly viewer: Viewer

Cesium.Viewer实例


mouseTooltip

mouseTooltip: MouseTooltip

鼠标移动提示框


disableDefaultContextMenu

disableDefaultContextMenu: boolean

是否禁用浏览器默认的鼠标右键菜单


originOptions

readonly originOptions: any

原始构造参数备份

继承自

BaseClass.originOptions


uuid

readonly uuid: string

实例的唯一ID

继承自

BaseClass.uuid

方法

setRenderErrorHandler()

setRenderErrorHandler(handler: RenderErrorHandler): void

自定义Cesium渲染异常处理函数

参数

handler

RenderErrorHandler

处理函数

返回

void


setToken()

setToken(token?: Partial<Token>): void

设置Cesium Ion等服务的Token,未传值的项将使用内部token

参数

token?

Partial<Token>

返回

void


setDisableMouseEvent()

setDisableMouseEvent(value?: boolean): void

设置是否禁用所有鼠标事件

参数

value?

boolean

返回

void


setDisableDefaultContextMenu()

setDisableDefaultContextMenu(value: boolean): void

设置是否禁用浏览器默认的鼠标右键菜单

参数

value

boolean

返回

void


destroy()

destroy(): void

销毁释放对象

返回

void

重写了

BaseClass.destroy


bindPopup()

bindPopup(options?: PopupOptions): void

绑定弹窗

参数

options?

PopupOptions = {}

弹窗实例类构造参数

返回

void


unbindPopup()

unbindPopup(): void

解除绑定弹窗

返回

void


downLoadScreenShot()

downLoadScreenShot(options?: { screenSelector?: string; nodeFilter?: (node: Element) => boolean; fileName?: string; }): void

下载截屏

参数

options?
screenSelector?

string

截屏区域的dom选择器,设置之后将会把对应的dom与viewer.canvas进行图片合并

nodeFilter?

(node: Element) => boolean

截屏区域的dom的节点过滤器,返回值为true的将被包含

fileName?

string

文件名称

返回

void


getScreenShotBase64()

getScreenShotBase64(options?: { screenSelector?: string; nodeFilter?: (node: Element) => boolean; }): Promise<string>

截屏输出base64

参数

options?
screenSelector?

string

截屏区域的dom选择器,设置之后将会把对应的dom与viewer.canvas进行图片合并

nodeFilter?

(node: Element) => boolean

截屏区域的dom的节点过滤器,返回值为true的将被包含

返回

Promise<string>

方法: 事件相关

on()

on(types: string | Record<any, any> | string[] | Record<EventTypeValue, any> | EventTypeValue[], fn: Function, context?: any): Earth

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

参数

types

事件类型

string | Record<any, any> | string[] | Record<EventTypeValue, any> | EventTypeValue[]

fn

Function

绑定的监听器回调方法

context?

any

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

返回

Earth

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

重写了

BaseClass.on


off()

off(types: string | Record<any, any> | string[] | Record<EventTypeValue, any> | EventTypeValue[], fn: Function, context?: any): Earth

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

参数

types

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

string | Record<any, any> | string[] | Record<EventTypeValue, any> | EventTypeValue[]

fn

Function

绑定的监听器回调方法,未传值时解绑所有指定类型对应事件

context?

any

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

返回

Earth

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

重写了

BaseClass.off


emit()

emit(type: string, data?: any, propagate?: boolean): Earth

触发指定类型的事件。

参数

type

string

事件类型

data?

any

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

propagate?

boolean

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

返回

Earth

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

继承自

BaseClass.emit


once()

once(types: string | Record<any, any> | string[] | Record<EventTypeValue, any> | EventTypeValue[], fn: Function, context?: any): Earth

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

参数

types

事件类型

string | Record<any, any> | string[] | Record<EventTypeValue, any> | EventTypeValue[]

fn

Function

绑定的监听器回调方法

context?

any

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

返回

Earth

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

继承自

BaseClass.once


hasListener()

hasListener(type: string, propagate?: boolean): boolean

是否有绑定指定的事件

参数

type

string

事件类型

propagate?

boolean

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

返回

boolean

是否存在

继承自

BaseClass.hasListener


addEventParent()

addEventParent(obj: BaseClass): Earth

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

参数

obj

BaseClass

父类对象

返回

Earth

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

继承自

BaseClass.addEventParent


removeEventParent()

removeEventParent(obj: BaseClass): Earth

移除抛出事件到父类

参数

obj

BaseClass

父类对象

返回

Earth

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

继承自

BaseClass.removeEventParent


hasEventParent()

hasEventParent(obj: BaseClass): boolean

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

参数

obj

BaseClass

父类对象

返回

boolean

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

继承自

BaseClass.hasEventParent

方法: 图层相关

getLayerById()

getLayerById<T>(id: string | number): T | undefined

根据id获取已加载的图层,支持递归到GroupLayer的子图层,默认返回类型为BaseLayer,如需更加友好的代码提示,请为方法添加适当的泛型

类型参数

T

T extends BaseLayer = BaseLayer

参数

id

图层id或uuid

string | number

返回

T | undefined

图层对象或undefined

示例

earth.getLayerById<KBCore.layers.WmsLayer>('demo')

getLayerByAttr()

getLayerByAttr<T>(value: any, attr?: string): T | undefined

根据指定属性获取已加载的图层,支持递归到GroupLayer的子图层,默认返回类型为BaseLayer,如需更加友好的代码提示,请为方法添加适当的泛型

类型参数

T

T extends BaseLayer = BaseLayer

参数

value

any

属性值(如id或name等属性对应的值)

attr?

string = 'id'

属性名称(如id, a.b),多个级别请传入a.b.c的形式

返回

T | undefined

图层对象或undefined

示例

earth.getLayerByAttr<KBCore.layers.WmsLayer>('1', 'id')
earth.getLayerByAttr<KBCore.layers.WmsLayer>('1', 'attr.a')

getLayers()

getLayers<T>(): T

获取已加载的所有图层,默认返回类型为BaseLayer,如需更加友好的代码提示,请为方法添加适当的泛型

类型参数

T

T = BaseLayer[]

返回

T

图层数组

示例

earth.getLayers<KBCore.layers.WmsLayer[]>()

getTileLayers()

getTileLayers<T>(): T

获取已加载的所有瓦片图层,可以用于卷帘对比,默认返回类型为BaseLayer,如需更加友好的代码提示,请为方法添加适当的泛型

类型参数

T

T = BaseLayer[]

返回

T

瓦片图层数组

示例

earth.getTileLayers<KBCore.layers.WmsLayer[]>()

eachLayer()

eachLayer(method: (layer: BaseLayer, index: number) => any, context?: any): void

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

参数

method

(layer: BaseLayer, index: number) => any

回调方法

context?

any

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

返回

void


addLayer()

addLayer(layer: BaseLayer, showVal?: boolean): void

添加图层到地球上

参数

layer

BaseLayer

图层对象

showVal?

boolean

如果传值,覆盖图层的show属性

返回

void


removeLayer()

removeLayer(layer: string | number | BaseLayer, isDestroy?: boolean): void

移除图层

参数

layer

需要移除的图层对象或id

string | number | BaseLayer

isDestroy?

boolean = false

是否destroy销毁释放对象,默认值:false

返回

void

方法: 特效相关

addEffect()

addEffect(effect: BaseEffect, enable?: boolean): void

添加特效到地球上

参数

effect

BaseEffect

特效对象

enable?

boolean

如果传值,覆盖特效的enable属性

返回

void


removeEffect()

removeEffect(effect: string | BaseEffect, isDestroy?: boolean): void

移除特效对象

参数

effect

需要移除的特效对象

string | BaseEffect

isDestroy?

boolean = false

是否destroy销毁释放对象,默认值:false

返回

void

方法: 相机视角相关

cancelFlyTo()

cancelFlyTo(): void

在相机飞行途中取消飞行

返回

void


flyHome()

flyHome(options?: FlyToControl): void

飞行到默认视角

参数

options?

FlyToControl

相机飞行控制参数

返回

void


flyTo()

flyTo(options: FlyToOptions): void

相机飞行

参数

options

FlyToOptions

返回

void


flyToPoint()

flyToPoint(point: ParserLatLngPointInput, options?: FlyToPointControl): void

根据目标点定位(非相机位置)

参数

point

ParserLatLngPointInput

options?

FlyToPointControl = {}

飞行到点控制参数

返回

void


flyToExtent()

flyToExtent(extent: Extent, options?: FlyToExtentControl): void

根据矩形范围边界定位(非相机位置)

参数

extent

Extent

矩形范围边界

options?

FlyToExtentControl = {}

飞行到矩形范围边界控制参数

返回

void


flyToPositions()

flyToPositions(positions: Cartesian3[], options?: FlyToPointControl): void

定位至坐标数组

参数

positions

Cartesian3[]

Cesium.Cartesian3[]坐标数组

options?

FlyToPointControl = {}

飞行到坐标数组控制参数

返回

void


getCameraVision()

getCameraVision(simplify?: boolean): CameraViewInfo

获取当前相机视角信息

参数

simplify?

boolean

是否简化返回信息

返回

CameraViewInfo

  • 包含经纬度、高度、航向、俯仰(可能包含翻滚角)的对象

getExtent()

getExtent(digits?: number): Extent

获取当前视域边界

参数

digits?

number = LatLngPoint.FormatLength

经纬度保留的小数位数,默认为 6

返回

Extent

  • 当前视域边界

构造函数

构造函数

new Earth(view: string | Element | Viewer, viewerOptions?: ViewerOptions, earthOptions?: EarthOptions): Earth

参数

view

渲染容器的id或dom节点或已创建的Cesium.Viewer实例

string | Element | Viewer

viewerOptions?

ViewerOptions = {}

viewer构造参数 - 当view为渲染容器的id或dom节点时有效

earthOptions?

EarthOptions = {}

earth构造参数

返回

Earth

重写了

BaseClass.constructor

访问器

imageryLayers

Getter 签名

get imageryLayers(): ImageryLayerCollection

获取在地球上渲染的ImageryLayer图像图层的集合类

返回

ImageryLayerCollection


imageryLayersArr

Getter 签名

get imageryLayersArr(): ImageryLayer[]

获取在地球上渲染的ImageryLayer图像图层的集合类中的图层数组

返回

ImageryLayer[]


dataSources

Getter 签名

get dataSources(): DataSourceCollection

获取要可视化的 DataSource 实例集

返回

DataSourceCollection


entities

Getter 签名

get entities(): EntityCollection

获取未绑定到特定数据源的实体的集合。这是 dataSourceDisplay.defaultDataSource.entities 的快捷方式。

返回

EntityCollection


hasTerrain

Getter 签名

get hasTerrain(): boolean

是否加载了地形

返回

boolean


container

Getter 签名

get container(): Element

获取viewer的容器dom

返回

Element


effects

Getter 签名

get effects(): Record<string, BaseEffect>

获取特效缓存Record记录,key为特效实例类的type

返回

Record<string, BaseEffect>


Getter 签名

get popup(): Popup | undefined

获取bindPopup绑定的实例

返回

Popup | undefined


disableMouseEvent

Getter 签名

get disableMouseEvent(): boolean | undefined

获取是否禁用所有鼠标事件

返回

boolean | undefined

Setter 签名

set disableMouseEvent(value: boolean | undefined): void

设置是否禁用所有鼠标事件

参数
value

boolean | undefined

返回

void

静态方法

getInstance()

static getInstance(uuid: string, delay?: number): Promise<Earth | undefined>

通过实例唯一id获取Earth实例对象

参数

uuid

string

Earth实例唯一id

delay?

number = 5000

延迟获取,默认值为5000,单位ms

返回

Promise<Earth | undefined>

Earth实例对象,调度超时将返回undefined

KBE3D @3.0.0 Copyright © 2024-present KBE3D