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