From 81f54040c2cb65537c6c6e1db8358a39a57dea0d Mon Sep 17 00:00:00 2001
From: mayisheng <admin>
Date: Mon, 15 Aug 2022 16:14:01 +0800
Subject: [PATCH] 1

---
 src/components/map/components/dimension.vue |  226 +++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 143 insertions(+), 83 deletions(-)

diff --git a/src/components/map/components/dimension.vue b/src/components/map/components/dimension.vue
index 03e4e04..6f8fd0b 100644
--- a/src/components/map/components/dimension.vue
+++ b/src/components/map/components/dimension.vue
@@ -43,16 +43,19 @@
 let yxLayer = null
 let dxLayer = null
 
-let viewerHeight = 700
-let heightChange = 700
+const slLayer = null
+const bzLayer = null
 
-const mixVH = 150
-const maxVH = 700
+let viewerHeight = 800
+let heightChange = 800
 
-const oneVH = 150
-const twoVH = 300
-const fourVH = 500
-const fiveVH = 700
+const mixVH = 300
+const maxVH = 1000
+
+const oneVH = 300
+const twoVH = 500
+const fourVH = 800
+const fiveVH = 1000
 
 const heightDifferenceValue = 100
 
@@ -97,8 +100,7 @@
                 [114.03954722, 27.62819644, 100],
                 [114.04006133, 27.628038, 100]
             ],
-            mapCenter: [114.03928435,
-                27.62997062, 700]
+            mapCenter: [116.02680670, 28.68340803, 800]
             // mapCenter: [116.35559028,
             //     27.96548051, 5000]
             // mapCenter: [115.871863, 28.743861, 950.0]
@@ -155,21 +157,21 @@
                 if (this.titlesetLayerFlag == false && newCode == true) {
                     var that = this
 
-                    baseLayerImgUrl.forEach(item => {
-                        var obj = {}
-                        obj[Object.keys(item)[0]] = []
-                        Object.values(item)[0].forEach(citem => {
-                            var layer = new global.DC.Namespace.Cesium.SingleTileImageryProvider({
-                                url: citem.url,
-                                rectangle: global.DC.Namespace.Cesium.Rectangle.fromDegrees(citem.rectangle[0], citem.rectangle[1], citem.rectangle[2], citem.rectangle[3])
-                            })
-                            obj[Object.keys(item)[0]].push({ layer, id: citem.id + Object.keys(item)[0], rectangle: citem.rectangle })
-                        })
-                        baseLayers.push(obj)
-                    })
+                    // baseLayerImgUrl.forEach(item => {
+                    //     var obj = {}
+                    //     obj[Object.keys(item)[0]] = []
+                    //     Object.values(item)[0].forEach(citem => {
+                    //         var layer = new global.DC.Namespace.Cesium.SingleTileImageryProvider({
+                    //             url: citem.url,
+                    //             rectangle: global.DC.Namespace.Cesium.Rectangle.fromDegrees(citem.rectangle[0], citem.rectangle[1], citem.rectangle[2], citem.rectangle[3])
+                    //         })
+                    //         obj[Object.keys(item)[0]].push({ layer, id: citem.id + Object.keys(item)[0], rectangle: citem.rectangle })
+                    //     })
+                    //     baseLayers.push(obj)
+                    // })
 
                     global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.SingleTileImageryProvider({
-                        url: '/img/bg/map.jpg'
+                        url: '/img/bg/bg.png'
                     }))
 
                     silhouetteBlue =
@@ -211,12 +213,31 @@
                     //     })
                     // )
 
-                    // baseMapLayer =
-                    //     global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
-                    //         url: '/wp/{z}/{x}/{y}.png',
-                    //         fileExtension: 'png'
-                    //         // minimumLevel: 19
-                    //     }))
+                    // slLayer = global.viewer.imageryLayers.addImageryProvider(
+                    //     new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
+                    //         url: 'http://t{s}.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0',
+                    //         subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
+                    //         format: 'image/jpeg',
+                    //         show: true,
+                    //         maximumLevel: 18
+                    //     })
+                    // )
+
+                    // bzLayer = global.viewer.imageryLayers.addImageryProvider(
+                    //     new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
+                    //         url: 'http://t{s}.tianditu.gov.cn/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0',
+                    //         subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
+                    //         format: 'image/jpeg',
+                    //         show: true,
+                    //         maximumLevel: 18
+                    //     })
+                    // )
+
+                    // baseMapLayer = global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
+                    //     url: '/wp/{z}/{x}/{y}.png',
+                    //     fileExtension: 'png'
+                    //     // minimumLevel: 19
+                    // }))
 
                     that.addBaseLayer()
 
@@ -332,15 +353,15 @@
                             heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                             // 视角
                             pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
-                            roll: 0.0
+                            roll: 0
                         }
                     })
                     // 最小
                     global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = mixVH
                     global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = mixVH + 1000
                     // 最大
-                    global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = maxVH
-                    global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = maxVH + 1000
+                    // global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = maxVH
+                    // global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = maxVH + 1000
 
                     // 设置相机缩小时的速率
                     // global.viewer.scene.screenSpaceCameraController._minimumZoomRate = 2000
@@ -355,13 +376,14 @@
                     global.viewer.scene.screenSpaceCameraController.enableZoom = true
                     global.eagleViewer.scene.screenSpaceCameraController.enableZoom = true
                     // 视角旋转
-                    global.viewer.scene.screenSpaceCameraController.enableTilt = false
-                    global.eagleViewer.scene.screenSpaceCameraController.enableTilt = false
+                    // global.viewer.scene.screenSpaceCameraController.enableTilt = false
+                    // global.eagleViewer.scene.screenSpaceCameraController.enableTilt = false
 
                     that.createdLayers()
 
                     global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, that.mouseMoveEvent)
 
+                    // 房屋轮廓对应的点击事件
                     global.viewer.on(global.DC.MouseEventType.CLICK, (e) => {
                         if (that.closeMapClick) {
                             return
@@ -481,7 +503,7 @@
                                             heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                                             // 视角
                                             pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
-                                            roll: 0.0
+                                            roll: 0
                                         }
                                     })
                                 }
@@ -532,9 +554,6 @@
 
                 const miny = global.DC.Namespace.Cesium.Math.toDegrees(lowerRightCartographic.latitude)// 弧度转经纬度
                 const maxy = global.DC.Namespace.Cesium.Math.toDegrees(upperLeftCartographic.latitude)// 弧度转经纬度
-
-                console.log('经度:' + minx + '----' + maxx)
-                console.log('纬度:' + miny + '----' + maxy)
 
                 params.minx = minx
                 params.maxx = maxx
@@ -639,7 +658,7 @@
         updateBaseLayer (flag) {
             const extent = this.getViewExtend()
 
-            const array = baseLayers.filter(item => {
+            const array = baseLayerImgUrl.filter(item => {
                 return item[viewerHeight]
             })
 
@@ -709,7 +728,10 @@
                         sm.rectangle[3] < extent.maxy
                     )
                 ) {
-                    var layer = global.viewer.imageryLayers.addImageryProvider(sm.layer)
+                    var layer = global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.SingleTileImageryProvider({
+                        url: sm.url,
+                        rectangle: global.DC.Namespace.Cesium.Rectangle.fromDegrees(sm.rectangle[0], sm.rectangle[1], sm.rectangle[2], sm.rectangle[3])
+                    }))
 
                     baseLayer.push({ layer, id: sm.id })
                 }
@@ -785,43 +807,43 @@
             //     that.resetView(lng, lat, height, Range, 'maxy')
             // }
 
-            if (height > 720) {
-                global.viewer.camera.setView({
-                    destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
-                        global.viewer.camera.positionCartographic.longitude,
-                        global.viewer.camera.positionCartographic.latitude,
-                        702
-                    ),
-                    orientation: {
-                        // 指向
-                        heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
-                        // 视角
-                        pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
-                        roll: 0.0
-                    }
-                })
+            // if (height > 1020) {
+            //     global.viewer.camera.setView({
+            //         destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+            //             global.viewer.camera.positionCartographic.longitude,
+            //             global.viewer.camera.positionCartographic.latitude,
+            //             1002
+            //         ),
+            //         orientation: {
+            //             // 指向
+            //             heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+            //             // 视角
+            //             pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+            //             roll: 0
+            //         }
+            //     })
 
-                return
-            }
+            //     return
+            // }
 
-            if (height < 140) {
-                global.viewer.camera.setView({
-                    destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
-                        global.viewer.camera.positionCartographic.longitude,
-                        global.viewer.camera.positionCartographic.latitude,
-                        148
-                    ),
-                    orientation: {
-                        // 指向
-                        heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
-                        // 视角
-                        pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
-                        roll: 0.0
-                    }
-                })
+            // if (height < 290) {
+            //     global.viewer.camera.setView({
+            //         destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+            //             global.viewer.camera.positionCartographic.longitude,
+            //             global.viewer.camera.positionCartographic.latitude,
+            //             298
+            //         ),
+            //         orientation: {
+            //             // 指向
+            //             heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+            //             // 视角
+            //             pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+            //             roll: 0
+            //         }
+            //     })
 
-                return
-            }
+            //     return
+            // }
 
             if (height > fiveVH - heightDifferenceValue) {
                 viewerHeight = fiveVH
@@ -847,20 +869,22 @@
                     heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                     // 视角
                     pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
-                    roll: 0.0
+                    roll: 0
                 }
             })
         },
 
+        // 加载房屋轮廓服务地址
         createdLayers () {
             layerGroup = new global.DC.LayerGroup('modelBox')
             global.viewer.addLayerGroup(layerGroup)
 
             DefaultAreaLayer = new global.DC.VectorLayer('DefaultAreaLayer')
             layerGroup.addLayer(DefaultAreaLayer)
+
             axios
                 .get(
-                    'http://arcgis.jxpskj.com:6080/arcgis/rest/services/lxxqwxq/MapServer/0/query?where=1%3D1&text=&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&relationParam=&outFields=*&returnGeometry=true&maxAllowableOffset=&geometryPrecision=&outSR=&returnIdsOnly=false&returnCountOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&gdbVersion=&returnDistinctValues=false&returnTrueCurves=false&resultOffset=&resultRecordCount=&f=pjson'
+                    'http://arcgis.jxpskj.com:6080/arcgis/rest/services/shidalk/MapServer/0/query?where=1%3D1&text=&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&relationParam=&outFields=*&returnGeometry=true&maxAllowableOffset=&geometryPrecision=&outSR=&returnIdsOnly=false&returnCountOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&gdbVersion=&returnDistinctValues=false&returnTrueCurves=false&resultOffset=&resultRecordCount=&f=pjson'
                 )
                 .then((resultData) => {
                     resultData.data.features.forEach((item) => {
@@ -1010,7 +1034,7 @@
                 // skipLevelOfDetail: false,
                 shadows: global.DC.Namespace.Cesium.ShadowMode.DISABLED
             })
-            tileset.setHeight(150)
+            tileset.setHeight(5)
             tilesetLayer.addOverlay(tileset)
             tileset.on(global.DC.MouseEventType.CLICK, that.tilesetClick)
         },
@@ -1080,6 +1104,17 @@
             that.$store.commit('SET_TWOORTHREE', that.dimensionValue)
 
             if (that.dimensionValue == '真三维') {
+                // global.viewer.imageryLayers.remove(slLayer)
+                // global.viewer.removeTerrain(slLayer)
+                // slLayer = null
+                // global.viewer.imageryLayers.remove(bzLayer)
+                // global.viewer.removeTerrain(bzLayer)
+                // bzLayer = null
+
+                // global.viewer.imageryLayers.remove(baseMapLayer)
+                // global.viewer.removeTerrain(baseMapLayer)
+                // baseMapLayer = null
+
                 global.viewer.off(global.DC.MouseEventType.MOUSE_MOVE, that.mouseMoveEvent)
                 global.viewer.off(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent)
                 global.eagleViewer.off(global.DC.SceneEventType.CAMERA_CHANGED, that.smallMapCameraEvent)
@@ -1135,8 +1170,7 @@
                     // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                     // fromDegrees()方法,将经纬度和高程转换为世界坐标
                     destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
-                        114.03989859,
-                        27.62581763,
+                        116.02680670, 28.68340803,
                         420.0
                     ),
                     orientation: {
@@ -1169,6 +1203,32 @@
                 global.viewer.removeTerrain(dxLayer)
                 dxLayer = null
 
+                // slLayer = global.viewer.imageryLayers.addImageryProvider(
+                //     new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
+                //         url: 'http://t{s}.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0',
+                //         subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
+                //         format: 'image/jpeg',
+                //         show: true,
+                //         maximumLevel: 18
+                //     })
+                // )
+
+                // bzLayer = global.viewer.imageryLayers.addImageryProvider(
+                //     new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
+                //         url: 'http://t{s}.tianditu.gov.cn/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0',
+                //         subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
+                //         format: 'image/jpeg',
+                //         show: true,
+                //         maximumLevel: 18
+                //     })
+                // )
+
+                // baseMapLayer = global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
+                //     url: '/wp/{z}/{x}/{y}.png',
+                //     fileExtension: 'png'
+                //     // minimumLevel: 19
+                // }))
+
                 that.btnGroupShow = false
                 global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, that.mouseMoveEvent)
                 global.viewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent)
@@ -1193,7 +1253,7 @@
                         heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                         // 视角
                         pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
-                        roll: 0.0
+                        roll: 0
                     }
                 })
 
@@ -1210,7 +1270,7 @@
                         heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                         // 视角
                         pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
-                        roll: 0.0
+                        roll: 0
                     }
                 })
                 // 最小
@@ -1223,8 +1283,8 @@
                 // 设置相机放大时的速率
                 global.viewer.scene.screenSpaceCameraController._maximumZoomRate = 5906376272000
                 // 视角旋转
-                global.viewer.scene.screenSpaceCameraController.enableTilt = false
-                global.eagleViewer.scene.screenSpaceCameraController.enableTilt = false
+                // global.viewer.scene.screenSpaceCameraController.enableTilt = false
+                // global.eagleViewer.scene.screenSpaceCameraController.enableTilt = false
             }
         }
     }

--
Gitblit v1.9.3