From fb207b8eec40b5111018db0ae38c3e9fef56f0aa Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期二, 28 二月 2023 11:39:56 +0800
Subject: [PATCH] 综合展示水淹没效果修改,分屏切换优化

---
 src/views/Tools/LayerTree.vue |   22 +++++++++++++++++++++-
 1 files changed, 21 insertions(+), 1 deletions(-)

diff --git a/src/views/Tools/LayerTree.vue b/src/views/Tools/LayerTree.vue
index c4bfd4f..d9411be 100644
--- a/src/views/Tools/LayerTree.vue
+++ b/src/views/Tools/LayerTree.vue
@@ -618,12 +618,32 @@
           })
         );
 
-        tileset.readyPromise.then(function (tileset) {
+        tileset.readyPromise.then((tileset0) => {
           tileset.id = res.cnName;
+
+          this.tileSet(tileset, parseFloat(res.elev))
+
+
+
           Viewer.flyTo(tileset);
         });
       }
     },
+
+
+    tileSet(tileset, height) {
+      //3dtile妯″瀷鐨勮竟鐣岀悆浣�
+      var boundingSphere = tileset.boundingSphere;
+      //杩崱灏旂┖闂寸洿瑙掑潗鏍�=>鍦扮悊鍧愭爣锛堝姬搴﹀埗锛�
+      var cartographic_original = Cesium.Cartographic.fromCartesian(boundingSphere.center);
+      //鍦扮悊鍧愭爣锛堝姬搴﹀埗锛�=>杩崱灏旂┖闂寸洿瑙掑潗鏍�
+      var Cartesian3_original = Cesium.Cartesian3.fromRadians(cartographic_original.longitude, cartographic_original.latitude, cartographic_original.height);
+      var Cartesian3_offset = Cesium.Cartesian3.fromRadians(cartographic_original.longitude, cartographic_original.latitude, height);
+      //鑾峰緱鍦伴潰鍜宱ffset鐨勮浆鎹�
+      var translation = Cesium.Cartesian3.subtract(Cartesian3_offset, Cartesian3_original, new Cesium.Cartesian3());
+      //淇敼妯″瀷鐭╅樀
+      tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation);
+    },
     setTreeData(source) {
       let cloneData = JSON.parse(JSON.stringify(source)); // 瀵规簮鏁版嵁娣卞害鍏嬮殕
       return cloneData.filter((father) => {

--
Gitblit v1.9.3