参考资料

EarthSDK API:Tree(重点关注 节点创建方法)

数据处理

使用cesiumLab将.obj/.fbx/.shp格式的模型处理成3dTiles数据,在分发服务-瓦片服务中找到刚刚处理过的数据,点击跳转至三维可视界面即可看到模型

室内室外模型融合

前提

将室内室外模型进行数据处理之后,使用三维可视功能将室内室外模型都加载出来。

步骤

1. 获取经纬度和高度

使用“分析-测量-点位”工具选取室外模型中的某点(室内模型放置的位置),获取“经度、纬度、高度”这三个数据。image.png

2. 将室内模型嵌入室外模型

在 图层管理-室内点击右键,选择属性,找到属性弹出框中的“扩展”,将上一步获取到的经度、纬度、高度三个数据填到“扩展-xbsjPosition”中。
在 图层管理-室内点击右键,选择拖拽移动,就可以看到模型就显示在室内模型中了。
image.png

3. 精调室内模型的位置、角度和尺寸

在“图层管理”中选中“室内”模型,使用“瓦片-编辑-移动”,“瓦片-编辑-旋转”调整模型的位置和角度。在 图层管理-室内点击右键,选择属性,找到属性弹出框中的“扩展”,通过修改xbsjScale属性的值,调整模型的尺寸。
image.png
image.png
image.png

4. 将室内模型加载至场景树

在“图层管理”中选中“室内”模型右键,在弹出的选项中选择“查看加载代码”,获取室内模型的节点数据。然后参考EarthSDK API将室内模型节点数据push到场景树中。
image.png
image.png

注意事项

场景保存

注意每次修改完场景中的图层后,不要忘记点击“漫游-场景-保存”将场景保存至本地,下次编辑只需在“分发服务-场景服务中打开即可”
image.png
image.png

多模型融合时的position是相对位置

目前数字孪生系统的需求是:

  1. 室内室外模型可切换,通过点击或者鼠标滚轮的方式进、出室内外模型
  2. 室内模型中要有动画,开关门动画

所以这就涉及到了三种模型的融合:室外模型、室内模型、家具模型。
第一次尝试将室外、室内、门的模型融合在一起时,是单独使用cesiumLab将室内和门的模型进行的处理,没有带上室外模型。所以当把门模型的节点数据push到sceneTree中时,室内模型中并未显示,就是因为position的问题。
多模型融合如果模型不显示,很大可能是因为position不对。
尤其是内外包含的模型进行融合时,比如汉峪金谷室外模型、深兰室内模型、推拉门模型、开关模型进行融合时,一定要遵循操作流程:先把室外模型的位置确定 ——> 然后将室内模型定位到室外模型的某个位置 ——> 最后再把推拉门模型和开关模型定位到室内模型的某个位置
如果不先确定外层模型的位置,那么如果外层模型的位置发生变化,相对于外层模型位置的内层模型位置也就不对了