Jelajahi Sumber

行政区划更新

zpf 11 bulan lalu
induk
melakukan
f8bc3cae7d
2 mengubah file dengan 62 tambahan dan 10 penghapusan
  1. 61 9
      src/views/viewer.vue
  2. 1 1
      static/Config/config.js

+ 61 - 9
src/views/viewer.vue

@@ -54,6 +54,7 @@ export default {
             flag: true,
             xzqh_color_click: "rgba(46, 177, 251, 0.6)",
             xzqh_color: "rgba(10, 95, 152, 0.5)",
+            primitivesL: [],
         };
     },
     //监听属性 类似于data概念
@@ -62,11 +63,27 @@ export default {
     watch: {},
     //方法集合
     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));
+
+                    primitives.get(i).show = flag;
+                }
+            });
+        },
         bigViewerChange() {
             store.setViewerFlagb(!store.state.viewer_flag);
             store.setToolBarShow(!store.state.viewer_flag);
             // store.setToolBarShow(true);
 
+            // 隐藏行政区划
+
+            this.hidden_xzqh(store.state.viewer_flag);
         },
         switch() {
             this.flag = !this.flag;
@@ -204,9 +221,12 @@ export default {
 
                     if (pickObj.primitive instanceof Cesium.Primitive) {//点击primitive
                         //primitive相关操作
-                        let pri_name = pickObj.id.name;
-                        let adcode = pickObj.id.adcode
-                        console.log('pickObj: ', pickObj);
+
+                        let obj = JSON.parse(pickObj.id);
+
+                        let pri_name = obj.name;
+                        // console.log('pickObj: ', pickObj.primitive.show = false);
+                        let adcode = obj.adcode
                         that.params.id = adcode
                         that.setDatas()
                         // 驾驶舱海域使用权
@@ -313,12 +333,13 @@ export default {
 
                     const twoDArray = item[0];
                     const oneDArray = twoDArray.reduce((accumulator, currentValue) => accumulator.concat(currentValue), []);
-
+                    that.primitivesL.push(JSON.stringify(obj));
                     // 行政区划
                     let polygon = new Cesium.GeometryInstance({
-                        id: obj,
-
+                        id: JSON.stringify(obj),
                         geometry: new Cesium.PolygonGeometry({
+                            minimum: new Cesium.Cartesian3(0, 0, 0),
+                            maximum: new Cesium.Cartesian3(100000, 100000, 100000),
                             polygonHierarchy: new Cesium.PolygonHierarchy(
                                 Cesium.Cartesian3.fromDegreesArray(oneDArray)
                             ),
@@ -330,6 +351,8 @@ export default {
                     let addPolygonGeometry = new Cesium.Primitive({
                         geometryInstances: polygon,
                         appearance: that.colorFun(Cesium.Color.fromCssColorString('#139FF0')),
+                        show: true,
+
                     })
 
                     viewer.scene.primitives.add(addPolygonGeometry)
@@ -458,7 +481,37 @@ 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实例)
@@ -482,8 +535,7 @@ export default {
             this.pick_xzqh();
             this.init_xzqh();
             this.init_hyqy();
-
-
+            // this.listeningAltitude();
         });
 
 

+ 1 - 1
static/Config/config.js

@@ -1,5 +1,5 @@
 //后台地址配置
-window.axiosURI = "http://192.168.60.4:8080";
+window.axiosURI = "http://192.168.100.30:8080";
 //倾斜模型高度配置
 window.modelBottomAltitude = 10;
 // 服务器ip