????????在cesium加載并顯示點(diǎn)云或者傾斜模型之前,需要將不同格式的數(shù)據(jù)轉(zhuǎn)為3dtiles,具體參考傾斜、點(diǎn)云轉(zhuǎn)3dtiles(osgb、las轉(zhuǎn)3dtiles)切片
? ? ? ? 轉(zhuǎn)換完成后就可以寫代碼將其加載到cesium地球上。
//定位到該地點(diǎn)
viewer.camera.flyTo({
destination : Cesium.Cartesian3.fromDegrees(112.96906,34.70736,5000.0)
});
qingxie = new Cesium.Cesium3DTileset({
url: "./models/tileset.json",
});
viewer.scene.primitives.add(qingxie);
? ? ? ? 有時(shí)候加載完成并不能貼地顯示,或者貼地顯示的具體位置和底圖位置不一致,需要對(duì)模型位置進(jìn)行調(diào)整。
qingxie.readyPromise.then(function(qingxie) {
//高度偏差,向上是正數(shù),向下是負(fù)數(shù)
var heightOffset = -210;
//計(jì)算tileset的綁定范圍
var boundingSphere = songlingqingxie1.boundingSphere;
//計(jì)算中心點(diǎn)位置
var cartographic = Cesium.Cartographic.fromCartesian(boundingSphere.center);
//計(jì)算中心點(diǎn)位置的地表坐標(biāo)
var surface = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, 0.0);
//偏移后的坐標(biāo)
var offset = Cesium.Cartesian3.fromRadians(cartographic.longitude+0.000015, cartographic.latitude-0.000015, heightOffset);
var translation = Cesium.Cartesian3.subtract(offset, surface, new Cesium.Cartesian3());
//tileset.modelMatrix轉(zhuǎn)換
qingxie.modelMatrix = Cesium.Matrix4.fromTranslation(translation);
});
? ? ? ? 最后模型成功準(zhǔn)確顯示在地圖上。
????????點(diǎn)云的代碼基本一樣。
dianyun =new Cesium.Cesium3DTileset({
url: "./models/ding/tileset.json",
});
viewer.scene.primitives.add(dianyun);
dianyun.readyPromise.then(function(dianyun) {
//高度偏差,向上是正數(shù),向下是負(fù)數(shù)
var heightOffset = -210;
//計(jì)算tileset的綁定范圍
var boundingSphere = songlingdianyun1.boundingSphere;
//計(jì)算中心點(diǎn)位置
var cartographic = Cesium.Cartographic.fromCartesian(boundingSphere.center);
//計(jì)算中心點(diǎn)位置的地表坐標(biāo)
var surface = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, 0.0);
//偏移后的坐標(biāo)
var offset = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, heightOffset);
var translation = Cesium.Cartesian3.subtract(offset, surface, new Cesium.Cartesian3());
//tileset.modelMatrix轉(zhuǎn)換
dianyun.modelMatrix = Cesium.Matrix4.fromTranslation(translation);
});
? ? ? ? 顯示如下。點(diǎn)云是自己用python按高程進(jìn)行渲染的,同樣需要進(jìn)行渲染的可以參考博客(點(diǎn)云按照高程進(jìn)行渲染(可自定義顏色——python)內(nèi)附RGB0-1間取值對(duì)應(yīng)表)。文章來源:http://www.zghlxwxcb.cn/news/detail-856049.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-856049.html
到了這里,關(guān)于cesium加載顯示點(diǎn)云及傾斜模型(3dtiles)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!