铯怎么调整3 dtile高度

介绍

这篇文章主要介绍”铯怎么调整3 dtile高度”,在日常操作中,相信很多人在铯怎么调整3 dtile高度问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答“铯怎么调整3 dtile高度”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

在3 dtile的制作过程中,如果原始的数据中,模型数据存在高程,在生成的3 dtile中也会存在高程的信息,这时就需要在系统中,底图数据的高程也要存在,这样才能和3 dtile进行匹配,不过,铯的开发文档中,也提供一个在数据加载完成后,动态调整3 dtile高度的方式,有一定限制是整体调整3 dtile的高度,即改变3 dtile的整体高程差。

API文档参照:https://cesiumjs.org/Cesium/Build/Documentation/Cesium3DTileset.html

具体实现的代码如下:

//定义观者

var=new Cesium.Viewer (& # 39; cesiumContainer& # 39;);

var确定=new铯。Cesium3DTileset ({

url: & # 39; 3 dtile在线地址& # 39;,

显示:真正的

});

,,,,//加载3 dtile

viewer.scene.primitives.add(确定);

,,,//3 dtile加载完成后执行

tileset.readyPromise.then(函数(确定){

//定位到3 dtiles的位置

viewer.camera.viewBoundingSphere(确定。拣选,新的铯。HeadingPitchRange (0 -20 0));

,,,,//高度偏差,向上是正数,向下是负数

var heightOffset=-1063.0;

,,,//计算确定的绑定范围

var拣?tileset.boundingSphere;

,,,//计算中心点位置

var地图=Cesium.Cartographic.fromCartesian (boundingSphere.center);

,,//计算中心点位置的地表坐标

表面var=Cesium.Cartesian3.fromRadians (cartographic.longitude,制图。纬度,0.0);

,,//偏移后的坐标

,,,,var抵消=Cesium.Cartesian3.fromRadians (cartographic.longitude,制图。纬度,heightOffset);

翻译=Cesium.Cartesian3 var。减去(偏移量、表面、新Cesium.Cartesian3 ());

,,,,//tileset.modelMatrix转换

确定。modelMatrix=Cesium.Matrix4.fromTranslation(翻译);

});

按照真实数据测试了一下效果,转换后高度是变化了,但是拉到太近,模型会显示不出来,可以根据实际测试一下效果,还是建议在3 dtile生成的过程中,完成高度的调整,没有转换过程,也能提高系统的性能。

到此,关于“铯怎么调整3 dtile高度”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

铯怎么调整3 dtile高度