World

World 是描述孪生世界的顶层对象,提供场景绘制和交互的画布。

构造函数

World(element)

在参数element指定的 DOM 元素中创建孪生世界场景。

示例代码:


const viewer = new Cesium.Viewer("cesium", {
    selectionIndicator: false,
    infoBox: false,
});

//向Cesium.Viewer实例添加nsdt@ted扩展。
viewer.extend(DT.DTWorldMixin);

//初始化nsdt@ted的world,sceneId为场景id
const world = await viewer.loadScene(sceneId);


属性

.canvas: HTMLCanvasElement

当前场景 canvas 容器。

.scene: THREE.Scene

孪生世界的 THREE.JS scene 场景。

.camera: Camera

孪生世界中的摄像机。

方法

.addTwin(twin: Twin): Void

在孪生世界中创建孪生体。

.removeTwin(twin: Twin): Void

在孪生世界中删除孪生体。

.hasTwin(id: string): Boolean

通过孪生体id查询孪生体是否存在。

.getTwin(id: string): Twin

通过孪生体 id 获取孪生体。

.getTwinsByProperty(name: string, value: any): Twin[]

通过属性获取挛生体。value支持正则表达式

.getTwins(): Twin[]

获取全部孪生体。

.getTwins(id: String): Twin

通过挛生体 id 获取挛生体。

.Coordinate2Position(longitude: number, latitude: number, height?: number): DT.Vector3

将经纬度转换为局部坐标系的坐标。

.getWorldTree(): JSON

获取世界大纲树。

参数 说明
twin 挛生体
id 图层组中的 id

.destroy(): Void

销毁场景。

.loadScene(sceneId: string, cb: Function) Void

通过场景 id 加载孪生世界场景。

.getRoamingList(sceneId: string, cb: Function) Void

通过场景 id 获取孪生世界的漫游列表。

world.getRoamingList(sceneId, (res) => {
  const roamData = res[0].points
  const roaming = DT.RoamingPath.createRoamingPath(roamData, () => {
    console.log("complete");
  });
  roaming.start();
});

.on(event: String, handler: Function, context?:Any): Void 绑定孪生世界事件的监听处理器。

.off(event: String, handler: Function): Void

解绑孪生世界事件的监听处理器。

.trigger(event: String): Void

触发绑定的孪生世界事件。

事件

目前支持的事件如下:

事件 说明
DT.MouseEventType.CLICK 当鼠标点击场景时触发
DT.MouseEventType.DB_CLICK 当鼠标双击场景时触发
DT.MouseEventType.MOUSE_DOWN 当鼠标摁下时触发
DT.MouseEventType.MOUSE_UP 当鼠标抬起时触发
DT.MouseEventType.MOUSE_MOVE 当鼠标移动时触发
DT.MouseEventType.RIGHT_CLICK 当鼠标右击时触发

示例代码:

//监听鼠标单击事件

 world.on(DT.MouseEventType.CLICK, (e) => {
    console.log("MouseEventType", e);
  });