cesium 學習筆記(6)2018.11.08
阿新 • • 發佈:2018-11-09
1.新增傾斜攝影3DTiles
var tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
url: url, //資料路徑
maximumScreenSpaceError: 2, //最大的螢幕空間誤差
maximumNumberOfLoadedTiles: 1000, //最大載入瓦片個數
modelMatrix: m //形狀矩陣
}));
2.3DTiles是什麼:https://cesium.com/blog/2015/08/10/introducing-3d-tiles/
3D Tiles是2016年3月定義的一種資料集,可以分塊、分級渲染,可以減輕瀏覽器和GPU的負擔,並且格式公開。為了擴充套件Cesium的地形和影象流,3D Tiles將用於流式傳輸3D內容,包括建築物,樹木,點雲和向量資料。
3.但是每次載入後,載入的3DTiles位置都不準確,可以調整
//建立平移矩陣方法一 // m = Cesium.Matrix4.fromArray([ // 1.0, 0.0, 0.0, 0.0, // 0.0, 1.0, 0.0, 0.0, // 0.0, 0.0, 1.0, 0.0, // x, y, z, 1.0 // ]); //建立平移矩陣方法二 var translation=Cesium.Cartesian3.fromArray([x, y, z]); m= Cesium.Matrix4.fromTranslation(translation); //生效 tileset._modelMatrix = m; //方法二,直接呼叫函式,調整高度,height表示物體離地面的高度 function changeHeight(height) { height = Number(height); if (isNaN(height)) { return; } var cartographic = Cesium.Cartographic.fromCartesian(tileset.boundingSphere.center); var surface = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, cartographic.height); var offset = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude,height); var translation = Cesium.Cartesian3.subtract(offset, surface, new Cesium.Cartesian3()); tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation); }