sunzehao 1 viikko sitten
vanhempi
commit
dfefb79cba

+ 25 - 2
src/views/cesium.vue

@@ -426,6 +426,29 @@ export default {
       // 隐藏 Cesium Logo
       viewer.cesiumWidget.creditContainer.style.display = "none";
       viewer.scene.globe.baseColor = Cesium.Color.BLACK;
+      // 禁用 Viewer 默认的双击缩放
+        viewer.cesiumWidget.screenSpaceEventHandler.removeInputAction(
+            Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK
+        );
+        // 设置相机离地表的最小距离(单位:米)
+        viewer.scene.screenSpaceCameraController.minimumZoomDistance = 10000;
+
+        const handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
+        handler.setInputAction(function(movement) {
+            const cartesian = viewer.camera.pickEllipsoid(movement.position, viewer.scene.globe.ellipsoid);
+            if (cartesian) {
+                const cartographic = Cesium.Cartographic.fromCartesian(cartesian);
+                const height = 100000.0; // 自定义高度(单位:米)
+                viewer.camera.flyTo({
+                    destination: Cesium.Cartesian3.fromRadians(
+                        cartographic.longitude,
+                        cartographic.latitude,
+                        cartographic.height + height
+                    ),
+                    duration: 1.0
+                });
+            }
+        }, Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK);
 
       this.viewer = viewer;
 
@@ -481,9 +504,9 @@ export default {
     // 初始化底图
     async initCesiumBaseMapImage() {
       const imageryProvider = await new Cesium.UrlTemplateImageryProvider({
-        // url: "https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}",
+        url: "https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}",
         // url: "http://localhost:3007/tiles/map/{z}/{x}/{y}",
-        url: "/static/ditu/{z}/{x}/{y}.png",
+        // url: "/static/ditu/{z}/{x}/{y}.png",
         credit: "影像地图",
         // minimumLevel: 10,
         maximumLevel: 18,

+ 4 - 4
src/views/cesiumComponents/windMap2D.vue

@@ -893,10 +893,10 @@ export default {
           roll: 0.0,
         },
         duration: 3.0,
-        // complete: function () {
-        //     console.log('飞入完成,启用拖拽限制逻辑');
-        //     enableHeightBasedDragControl();
-        // }
+        complete: function () {
+            console.log('飞入完成,启用拖拽限制逻辑');
+            enableHeightBasedDragControl();
+        }
       });
       // ===== 控制逻辑:根据高度决定是否允许拖拽 =====
       function enableHeightBasedDragControl() {

+ 0 - 16
src/views/cesiumComponents/windMap3D.vue

@@ -604,22 +604,6 @@ export default {
           //   silhouetteSize: this.dixingAdd ? 2 : 0,
           //   silhouetteColor: Cesium.Color.fromCssColorString(statueColor),
           //   runAnimations: wtStatue !== 7 ? false : true,
-          customShader: new Cesium.CustomShader({
-            uniforms: {
-              u_exaggeration: {
-                type: Cesium.UniformType.FLOAT,
-                value: 10.0, // 与verticalExaggeration相同
-              },
-            },
-            vertexShaderText: `
-      void vertexMain(VertexInput vsInput, inout czm_modelVertexOutput vsOutput) {
-        // 抵消垂直夸张
-        vsOutput.positionMC.y /= u_exaggeration;
-        // 如果需要保持模型在世界坐标中的位置不变
-        // 需要更复杂的矩阵计算
-      }
-    `,
-          }),
         },
         // label: {
         //   text: name,

+ 33 - 57
src/views/cesiumComponents/windView.vue

@@ -1,12 +1,21 @@
 <template>
   <div class="windView">
-    <aside class="sidebar-left-top">
-      <div class="stat-block-lefttop" @click="backStations">
-        <p class="label">返回</p>
-      </div>
-    </aside>
+    <div class="btnms">
+        <aside class="sidebar-left-top btnms1">
+            <div class="stat-block-lefttop" @click="backStations">
+                <p class="label">返回</p>
+            </div>
+        </aside>
+        <aside class="sidebar-left-top btnms2">
+            <div class="stat-block-lefttop" @click="showMessages">
+                <p class="label" v-if="showMessagesB">隐藏详情</p>
+                <p class="label" v-else>查看详情</p>
+            </div>
+        </aside>
+    </div>
+    
     <!-- Left Sidebar -->
-    <aside class="sidebar-left panel">
+    <aside class="sidebar-left panel" v-if="showMessagesB">
       <div class="stat-block">
         <p class="label">总装机容量:</p>
         <p class="value">
@@ -60,7 +69,7 @@
         <p class="value">1258天</p>
       </div>
     </aside>
-    <aside class="sidebar-left2 panel">
+    <aside class="sidebar-left2 panel" v-if="showMessagesB">
       <div class="stat-block2">
         <span class="labels">数据 </span>
         <span class="values"
@@ -194,53 +203,7 @@
         </div>
       </div>
     </aside>
-    <!-- <aside class="sidebar-left2 panel" v-if="showWindStatus">
-            <div v-if="showWeather">
-                <span class="labels">覆盖模式 </span>
-                <div class="stat-block">
-                    <span class="covercheck">
-                        <el-check-tag v-for="(it, index) in coverArr" :key="index" type="primary"
-                        :disabled="it.disabled"
-                        :checked="it.check" @change="coverOnChange(it)">{{it.value}}</el-check-tag>
-                    </span>
-                </div>
-            </div>
-            <div>
-                <span class="labels" style="">风机状态类型 </span>
-                <div class="stat-block" style="display: flex">
-                    <div class="windStatus">
-                        <img :src="bw" style="width:60px;height:60px;">
-                        <p class="values windVal">并网</p>
-                    </div>
-                    <div class="windStatus">
-                        <img :src="dj" style="width:60px;height:60px;">
-                        <p class="values windVal">待机</p>
-                    </div>
-                    <div class="windStatus">
-                        <img :src="gz" style="width:60px;height:60px;">
-                        <p class="values windVal">故障</p>
-                    </div>
-                    <div class="windStatus">
-                        <img :src="jx" style="width:60px;height:60px;">
-                        <p class="values windVal">检修</p>
-                    </div>
-                    <div class="windStatus">
-                        <img :src="xd" style="width:60px;height:60px;">
-                        <p class="values windVal">限电</p>
-                    </div>
-                    <div class="windStatus">
-                        <img :src="lx" style="width:60px;height:60px;">
-                        <p class="values windVal">离线</p>
-                    </div>
-                    <div class="windStatus">
-                        <img :src="sl" style="width:60px;height:60px;">
-                        <p class="values windVal">受累</p>
-                    </div>
-                </div>
-            </div>
-        </aside> -->
-    <!-- Right Sidebar -->
-    <aside class="sidebar-right panel">
+    <aside class="sidebar-right panel" v-if="showMessagesB">
       <div class="info-section">
         <h3>风场信息</h3>
         <div class="info-item">
@@ -533,7 +496,7 @@
             </div> -->
     </aside>
     <!-- Bottom Bar -->
-    <div class="bottom-bar" v-if="showWindDetail">
+    <div class="bottom-bar" v-if="showWindDetail && showMessagesB">
       <!-- 损失电量 -->
       <div class="panel">
         <div class="indicator-title">
@@ -862,6 +825,7 @@ export default {
       xd,
       lx,
       sl,
+      showMessagesB: true,
       progressHeight: 0,
       progressPoint: 0,
       windmodelArr: [
@@ -1086,6 +1050,9 @@ export default {
         path: "/",
       });
     },
+    showMessages() {
+        this.showMessagesB = !this.showMessagesB
+    },
     valueOnChange(it) {
       this.heightArr.forEach((it) => {
         it.check = false;
@@ -1313,16 +1280,25 @@ export default {
   box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.08);
   padding: 20px;
 }
-
+.btnms{
+    display: flex;
+}
 /* --- Left Sidebar --- */
 .sidebar-left,
 .sidebar-left-top {
   position: absolute;
   left: 20px;
 }
+.btnms1{
+    width: 80px;
+    left: 20px;
+}
+.btnms2{
+    width: 120px;
+    left: 120px;
+}
 .sidebar-left-top {
   top: 100px;
-  width: 80px;
   padding: 5px;
   border-radius: 8px;
   backdrop-filter: blur(10px);