zpf před 1 rokem
rodič
revize
fe2e07e887
1 změnil soubory, kde provedl 17 přidání a 61 odebrání
  1. 17 61
      src/views/viewer.vue

+ 17 - 61
src/views/viewer.vue

@@ -41,7 +41,7 @@ import hyqy from "../../static/data/460200_hyqy.json";
 import SerCenter from './cockpitNew1/serCenter.vue';
 
 import { cockpitInfo } from '@/api/cockpit'
-
+let manager = {};
 export default {
     components: { serCenter, GKZB, BJXM, TDSC, HYSY, TDSY, GDBH, STXF, WPJG, datePicker, SerCenter },
     data() {
@@ -64,17 +64,18 @@ export default {
     //方法集合
     methods: {
         hidden_xzqh(flag) {
-            this.primitivesL.forEach(element => {
-
-                const primitives = viewer.scene.primitives;
-
-                for (let i = 0; i < primitives.length; i++) {
 
-                    console.log(primitives.get(i));
+            for (let index = 0; index < manager._primitives.length; index++) {
+                const element = manager._primitives[index];
+                element.show = flag;
+            }
 
-                    primitives.get(i).show = flag;
+        }, hidden_wall(flag) {
+            viewer.entities.values.forEach((res) => {
+                if (res.name == "立体墙效果" || res.name == "海域") {
+                    res.show = flag;
                 }
-            });
+            })
         },
         bigViewerChange() {
             store.setViewerFlagb(!store.state.viewer_flag);
@@ -82,8 +83,9 @@ export default {
             // store.setToolBarShow(true);
 
             // 隐藏行政区划
-
             this.hidden_xzqh(store.state.viewer_flag);
+            // 隐藏墙体
+            this.hidden_wall(store.state.viewer_flag);
         },
         switch() {
             this.flag = !this.flag;
@@ -354,7 +356,7 @@ export default {
                         show: true,
 
                     })
-
+                    manager.add(addPolygonGeometry)
                     viewer.scene.primitives.add(addPolygonGeometry)
 
                     // 墙体流动效果
@@ -371,8 +373,6 @@ export default {
                             fillColor: Cesium.Color.fromCssColorString("#ffffff"),
                             pixelOffset: new Cesium.Cartesian2(5, -15),
                             zIndex: 3,
-                            // 设置远近裁条件
-                            distanceDisplayCondition: new Cesium.DistanceDisplayCondition(20000, 9999999999.0),
                         },
                         billboard: {
                             // 图像地址,URI或Canvas的属性
@@ -381,7 +381,6 @@ export default {
                             width: 150,
                             scale: 1.0,
                             zIndex: 2,
-                            distanceDisplayCondition: new Cesium.DistanceDisplayCondition(20000, 9999999999.0),
                             show: false
                         },
                         wall: {
@@ -393,8 +392,6 @@ export default {
                                 color: Cesium.Color.fromBytes(19, 159, 240).withAlpha(0.7),
                                 duration: 3000
                             }),
-                            distanceDisplayCondition: new Cesium.DistanceDisplayCondition(20000, 9999999999.0)
-
                         }
                     })
                 })
@@ -417,6 +414,7 @@ export default {
                 viewer.entities.add({
                     position: Cesium.Cartesian3.fromDegrees(res.properties.centroid[0], res.properties.centroid[1], 500),
                     properties: obj,
+                    name: "海域",
                     polygon: {
                         zIndex: 1,
                         hierarchy: {
@@ -430,8 +428,6 @@ export default {
                         outline: true,
                         // outlineColor : Cesium.Color.BLACK
                         outlineColor: Cesium.Color.fromCssColorString('#55A1E3'),
-                        // 设置远近裁条件
-                        distanceDisplayCondition: new Cesium.DistanceDisplayCondition(20000, 9999999999.0),
                     }
                 });
 
@@ -482,60 +478,20 @@ export default {
             // 如果需要保持原始顺序,可以在压入栈时使用unshift代替push,但这样会降低性能  
             return result;
         },
-        getHeightByLevel(level) {
-            var A = 40487.57;
-            var B = 0.00007096758;
-            var C = 91610.74;
-            var D = -40467.74;
-            // console.log(
-            //     "获取level层级" + Math.round(D + (A - D) / (1 + Math.pow(level / C, B)))
-            // );
-            return Math.round(D + (A - D) / (1 + Math.pow(level / C, B)));
-        },
-        listeningAltitude() {
-            const that = this;
-            viewer.scene.postRender.addEventListener(() => {
-                const canvasHeight = viewer.scene.canvas.height;
-                const windowPosition = new Cesium.Cartesian2();
-
-                // 获取当前地图层级
-                var level = Math.ceil(viewer.camera.positionCartographic.height);
-                var mapLevel = that.getHeightByLevel(level);
-                if (mapLevel >= 14) {
-                    console.log('viewer.scene.primitives: ', viewer.scene.primitives);
-
-                } else {
-                    // viewer.scene.primitives
-                }
-
-
-            }, this);
-        },
-
     },
     beforeCreate() { }, //生命周期 - 创建之前
     created() { }, //生命周期 - 创建完成(可以访问当前this实例)
     beforeMount() { }, //生命周期 - 挂载之前
     async mounted() {
 
-        // let obj = { beginTime: '20230612', endTime: '20230817', jscType: 'jsc_wpjc_yelx', id: '46' };
-        // let data = await cockpitInfo(obj);
-
-
-
-        // let obj1 = { beginTime: '20230612', endTime: '20230817', jscType: 'jsc_wpjc_ztsh', id: '46' }
-        // let data1 = await cockpitInfo(obj1);
-
-        // console.log(data, "asda");
-        // console.log(data1, "asda");
-        // 三亚行政区划加载
-
 
         this.$nextTick((res) => {
+            manager = new Cesium.PrimitiveCollection();
+            manager.destroyPrimitives = false;
+            viewer.scene.primitives.add(manager);
             this.pick_xzqh();
             this.init_xzqh();
             this.init_hyqy();
-            // this.listeningAltitude();
         });