shuishen
2022-07-21 58060e64e1fa9cf3ffcf5e29f09c4c2edf8f2126
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,8 +213,27 @@
                    //     })
                    // )
                    // baseMapLayer =
                    //     global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
                    // 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
@@ -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,8 +376,8 @@
                    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()
@@ -481,7 +502,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 +553,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 +657,7 @@
        updateBaseLayer (flag) {
            const extent = this.getViewExtend()
            const array = baseLayers.filter(item => {
            const array = baseLayerImgUrl.filter(item => {
                return item[viewerHeight]
            })
@@ -709,7 +727,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 +806,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,7 +868,7 @@
                    heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                    // 视角
                    pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                    roll: 0.0
                    roll: 0
                }
            })
        },
@@ -1080,6 +1101,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 +1167,7 @@
                    // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                    // fromDegrees()方法,将经纬度和高程转换为世界坐标
                    destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
                        114.03989859,
                        27.62581763,
                        116.02680670, 28.68340803,
                        420.0
                    ),
                    orientation: {
@@ -1169,6 +1200,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 +1250,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 +1267,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 +1280,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
            }
        }
    }