首页 / 浏览问题 / WebGIS / 问题详情
如何平移整个BIM模型
2EXP 2023年08月02日

使用产品:SuperMap iClient3D 11i(2023) for Cesium

我的s3m模型地址加载完成后默认会跑到马来西亚去,我想把它移到广州,代码如下 

const scene = viewer.scene.open('html://xxx.xxx.xxx/realspace')
const layer = viewer.scene.layers.layerQueue[0]
layer.height = 100
layer.lat = 23.1291
layer.lon = 113.2644
layer.LoadingPriority = 2
layer.refresh()

然后 用下面的代码调整视角

viewer.camera.setView({
  destination: Cesium.Cartesian3.fromDegrees(layer.lon, layer.lat, layer.height+400),
});

视角调整了之后, 模型不见了,然后我又尝试了下面这种方法

viewer.camera.flyTo({
  destination: layer._position,
  orientation: {
    heading: 0,
    pitch: SuperCesium.Math.toRadians(-45),
    roll: 0
  }
});

 视角飞过去之后,鼠标滚轮抬高视角,然后就报错了

1个回答

您好,如果要对整个模型缓存进行位置调整,可以通过调整scp文件下的position的坐标位置来调整整个缓存的中心位置。

如果要对单个模型进行位置调整,因为缓存是分块存储的形式,不能对单个模型缓存位置进行调整。

建议您在桌面使用三维配准,配准BIM模型位置后,重新生成场景缓存。

希望能帮到您!
4,151EXP 2023年08月02日
模型服务是客户发的,我这边动不了,有没有纯前端调整模型位置的方法
只能调整整个图层,不能调整某个对象。
...