日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

首次使用Cesium加载3D数据不成功

發布時間:2025/4/14 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 首次使用Cesium加载3D数据不成功 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

接此;

https://blog.csdn.net/bcbobo21cn/article/details/110454547

?

參閱相關教程;Cesium加載3D數據是通過3D Tiles進行;
3D Tiles是cesium小組定義的一種數據集;格式公開;

?

先看一下有沒有在線示例3D Tiles,有的話使用其url來做一個示例;

看cesium網,cesium中文網;需要注冊;

看示例,示例帶有示例3D Tiles文件;

?

基本的加載代碼如下;

<script>var viewer = new Cesium.Viewer("cesiumContainer");var palaceTileset = new Cesium.Cesium3DTileset({ url: './SampleData/Cesium3DTiles/Classification/Photogrammetry/tileset.json' //或者url: 'http://ip:port/www/DAEPalace/tileset.json' });var longitude = 114.33; var latitude = 30.35; height = 150; var heading = 2; palaceTileset.readyPromise.then(function(argument) {//經緯度、高轉笛卡爾坐標var position = Cesium.Cartesian3.fromDegrees(longitude, latitude, height);var mat = Cesium.Transforms.eastNorthUpToFixedFrame(position);var rotationX = Cesium.Matrix4.fromRotationTranslation(Cesium.Matrix3.fromRotationZ(Cesium.Math.toRadians(heading)));Cesium.Matrix4.multiply(mat, rotationX, mat);palaceTileset._root.transform = mat; })viewer.scene.primitives.add(palaceTileset); </script>

使用json數據的url來new一個Cesium3DTileset類對象;
然后把此對象添加到viewer.scene上面;
可以通過指定經緯高調整模型位置:
? ? 由經緯度和height得到一個position;
? ? 由position得到一個mat,矩陣;
? ? fromRotationTranslation是坐標轉換方式;
? ? Cesium.Matrix4.multiply(mat, rotationX, mat), 矩陣轉換以后獲得一個新的mat;
? ? palaceTileset._root.transform = mat,mat賦給數據集的transform參數;

運行一下;然后定位到加載的經緯度,114.33,30.35;沒有3D數據出來;只有此經緯度的底圖;

調整不同的參數;height,heading;3D數據還是沒出來;

不同的時候錯誤如下;

?

? ? 從錯誤來看是加載的某些參數不對;

它的3D數據是如下;一個json文件,一個b3dm文件;如果自己有一個3d型的話需要自己轉換;有時間再繼續;

?

總結

以上是生活随笔為你收集整理的首次使用Cesium加载3D数据不成功的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。