From fc1b3224951ad6f9c58c5fd3781caa47c9710ed7 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Fri, 25 Mar 2022 18:37:47 +0800
Subject: [PATCH] 滚轮修改
---
src/components/map/components/dimension.vue | 647 ++++++++++++++++++++++++++++++++++------------------------
1 files changed, 379 insertions(+), 268 deletions(-)
diff --git a/src/components/map/components/dimension.vue b/src/components/map/components/dimension.vue
index 329801b..0ec6d09 100644
--- a/src/components/map/components/dimension.vue
+++ b/src/components/map/components/dimension.vue
@@ -56,12 +56,15 @@
let layerSATtwo = null
let tcLayer = null
+let idlerFlag = true
+
// const wallLayer = null
export default {
name: 'dimension',
data () {
return {
+
btnGroupShow: false,
dimensionValue: '三 维',
// 建筑2.5D地图
@@ -98,8 +101,8 @@
[114.04006133, 27.628038, 100]
],
mapCenter: [116.35381525,
- 27.95839468, 400.0]
- // mapCenter: [115.871863, 28.743861, 400.0]
+ 27.95839468, 950.0]
+ // mapCenter: [115.871863, 28.743861, 950.0]
}
},
computed: {
@@ -116,6 +119,34 @@
select = {
overlay: null,
color: null
+ }
+
+ windowAddMouseWheel()
+ function windowAddMouseWheel () {
+ var scrollFunc = function (e) {
+ e = e || window.event
+ if (e.wheelDelta) { // 判断浏览器IE,谷歌滑轮事件
+ if (e.wheelDelta > 0) { // 当滑轮向上滚动时
+ idlerFlag = false
+ }
+ if (e.wheelDelta < 0) { // 当滑轮向下滚动时
+ idlerFlag = true
+ }
+ } else if (e.detail) { // Firefox滑轮事件
+ if (e.detail > 0) { // 当滑轮向上滚动时
+ idlerFlag = false
+ }
+ if (e.detail < 0) { // 当滑轮向下滚动时
+ idlerFlag = true
+ }
+ }
+ }
+ // 给页面绑定滑轮滚动事件
+ if (document.addEventListener) { // 火狐使用DOMMouseScroll绑定
+ document.addEventListener('DOMMouseScroll', scrollFunc, false)
+ }
+ // 其他浏览器直接绑定滚动事件
+ window.onmousewheel = document.onmousewheel = scrollFunc
}
},
watch: {
@@ -320,11 +351,11 @@
})
// 最小
- global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 100
- global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = 1100
+ global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 500
+ global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = 1500
// 最大
- // global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 400
- // global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = 1400
+ global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 950
+ global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = 1950
// 设置相机缩小时的速率
global.viewer.scene.screenSpaceCameraController._minimumZoomRate = 2000
@@ -457,7 +488,7 @@
destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
that.mapCenter[0],
that.mapCenter[1],
- 400.0
+ 950.0
),
orientation: {
// 指向
@@ -470,147 +501,147 @@
}
}
- // document.querySelector('.dc-zoom-controller').children[2].onclick =
- // function () {
- // if (
- // that.dimensionValue != undefined &&
- // that.dimensionValue != '真三维'
- // ) {
- // const height = Math.ceil(
- // global.viewer.camera.positionCartographic.height
- // )
+ document.querySelector('.dc-zoom-controller').children[2].onclick =
+ function () {
+ if (
+ that.dimensionValue != undefined &&
+ that.dimensionValue != '真三维'
+ ) {
+ const height = Math.ceil(
+ global.viewer.camera.positionCartographic.height
+ )
- // if (height < 150) {
- // global.viewer.camera.setView({
- // destination:
- // global.DC.Namespace.Cesium.Cartesian3.fromRadians(
- // global.viewer.camera.positionCartographic.longitude,
- // global.viewer.camera.positionCartographic.latitude,
- // 200
- // ),
- // orientation: {
- // // 指向
- // heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // // 视角
- // pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- // roll: 0.0
- // }
- // })
+ if (height < 575) {
+ global.viewer.camera.setView({
+ destination:
+ global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ 650
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
- // return
- // }
+ return
+ }
- // if (height < 250) {
- // global.viewer.camera.setView({
- // destination:
- // global.DC.Namespace.Cesium.Cartesian3.fromRadians(
- // global.viewer.camera.positionCartographic.longitude,
- // global.viewer.camera.positionCartographic.latitude,
- // 300
- // ),
- // orientation: {
- // // 指向
- // heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // // 视角
- // pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- // roll: 0.0
- // }
- // })
+ if (height < 725) {
+ global.viewer.camera.setView({
+ destination:
+ global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ 800
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
- // return
- // }
+ return
+ }
- // if (height < 350) {
- // global.viewer.camera.setView({
- // destination:
- // global.DC.Namespace.Cesium.Cartesian3.fromRadians(
- // global.viewer.camera.positionCartographic.longitude,
- // global.viewer.camera.positionCartographic.latitude,
- // 400
- // ),
- // orientation: {
- // // 指向
- // heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // // 视角
- // pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- // roll: 0.0
- // }
- // })
- // }
- // }
- // }
+ if (height < 875) {
+ global.viewer.camera.setView({
+ destination:
+ global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ 950
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ }
+ }
+ }
- // document.querySelector('.dc-zoom-controller').children[0].onclick =
- // function () {
- // if (
- // that.dimensionValue != undefined &&
- // that.dimensionValue != '真三维'
- // ) {
- // const height = Math.ceil(
- // global.viewer.camera.positionCartographic.height
- // )
+ document.querySelector('.dc-zoom-controller').children[0].onclick =
+ function () {
+ if (
+ that.dimensionValue != undefined &&
+ that.dimensionValue != '真三维'
+ ) {
+ const height = Math.ceil(
+ global.viewer.camera.positionCartographic.height
+ )
- // if (height > 350) {
- // global.viewer.camera.setView({
- // destination:
- // global.DC.Namespace.Cesium.Cartesian3.fromRadians(
- // global.viewer.camera.positionCartographic.longitude,
- // global.viewer.camera.positionCartographic.latitude,
- // 300
- // ),
- // orientation: {
- // // 指向
- // heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // // 视角
- // pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- // roll: 0.0
- // }
- // })
+ if (height > 875) {
+ global.viewer.camera.setView({
+ destination:
+ global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ 800
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
- // return
- // }
+ return
+ }
- // if (height > 250) {
- // global.viewer.camera.setView({
- // destination:
- // global.DC.Namespace.Cesium.Cartesian3.fromRadians(
- // global.viewer.camera.positionCartographic.longitude,
- // global.viewer.camera.positionCartographic.latitude,
- // 200
- // ),
- // orientation: {
- // // 指向
- // heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // // 视角
- // pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- // roll: 0.0
- // }
- // })
+ if (height > 725) {
+ global.viewer.camera.setView({
+ destination:
+ global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ 650
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
- // return
- // }
+ return
+ }
- // if (height > 150) {
- // global.viewer.camera.setView({
- // destination:
- // global.DC.Namespace.Cesium.Cartesian3.fromRadians(
- // global.viewer.camera.positionCartographic.longitude,
- // global.viewer.camera.positionCartographic.latitude,
- // 100
- // ),
- // orientation: {
- // // 指向
- // heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // // 视角
- // pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- // roll: 0.0
- // }
- // })
- // }
- // }
- // }
+ if (height > 575) {
+ global.viewer.camera.setView({
+ destination:
+ global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ 500
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ }
+ }
+ }
- // global.viewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent)
+ global.viewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent)
// global.eagleViewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.smallMapCameraEvent)
}
}
@@ -695,72 +726,112 @@
}
})
- if (height < 150) {
- global.viewer.camera.setView({
- destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
- global.viewer.camera.positionCartographic.longitude,
- global.viewer.camera.positionCartographic.latitude,
- 100
- ),
- orientation: {
- // 指向
- heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // 视角
- pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- roll: 0.0
- }
- })
- }
+ if (idlerFlag) { // 下
+ if (height > 810) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ 950
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ return
+ }
- if (height > 150 && height <= 250) {
- global.viewer.camera.setView({
- destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
- global.viewer.camera.positionCartographic.longitude,
- global.viewer.camera.positionCartographic.latitude,
- 200
- ),
- orientation: {
- // 指向
- heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // 视角
- pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- roll: 0.0
- }
- })
- }
+ if (height > 660) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ 800
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ return
+ }
- if (height > 250 && height <= 350) {
- global.viewer.camera.setView({
- destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
- global.viewer.camera.positionCartographic.longitude,
- global.viewer.camera.positionCartographic.latitude,
- 300
- ),
- orientation: {
- // 指向
- heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // 视角
- pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- roll: 0.0
- }
- })
- }
+ if (height > 510) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ 650
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ }
+ } else { // 上
+ if (height < 640) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ 500
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ return
+ }
- if (height > 350) {
- global.viewer.camera.setView({
- destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
- global.viewer.camera.positionCartographic.longitude,
- global.viewer.camera.positionCartographic.latitude,
- 400
- ),
- orientation: {
- // 指向
- heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // 视角
- pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- roll: 0.0
- }
- })
+ if (height < 790) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ 650
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ return
+ }
+
+ if (height < 940) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ 800
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ }
}
},
@@ -779,72 +850,112 @@
}
})
- if (height < 1150) {
- global.eagleViewer.camera.setView({
- destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
- global.eagleViewer.camera.positionCartographic.longitude,
- global.eagleViewer.camera.positionCartographic.latitude,
- 1100
- ),
- orientation: {
- // 指向
- heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // 视角
- pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- roll: 0.0
- }
- })
- }
+ if (idlerFlag) { // 下
+ if (height > 1810) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ 1950
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ return
+ }
- if (height > 1150 && height <= 1250) {
- global.eagleViewer.camera.setView({
- destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
- global.eagleViewer.camera.positionCartographic.longitude,
- global.eagleViewer.camera.positionCartographic.latitude,
- 1200
- ),
- orientation: {
- // 指向
- heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // 视角
- pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- roll: 0.0
- }
- })
- }
+ if (height > 1660) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ 1800
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ return
+ }
- if (height > 1250 && height <= 1350) {
- global.eagleViewer.camera.setView({
- destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
- global.eagleViewer.camera.positionCartographic.longitude,
- global.eagleViewer.camera.positionCartographic.latitude,
- 1300
- ),
- orientation: {
- // 指向
- heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // 视角
- pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- roll: 0.0
- }
- })
- }
+ if (height > 1510) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ 1650
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ }
+ } else { // 上
+ if (height < 1640) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ 1500
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ return
+ }
- if (height > 1350) {
- global.eagleViewer.camera.setView({
- destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
- global.eagleViewer.camera.positionCartographic.longitude,
- global.eagleViewer.camera.positionCartographic.latitude,
- 1400
- ),
- orientation: {
- // 指向
- heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // 视角
- pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- roll: 0.0
- }
- })
+ if (height < 1790) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ 1650
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ return
+ }
+
+ if (height < 1940) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ 1800
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ }
}
},
@@ -1178,7 +1289,7 @@
destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
that.mapCenter[0],
that.mapCenter[1],
- 400.0
+ 950.0
),
orientation: {
// 指向
@@ -1195,7 +1306,7 @@
destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
that.mapCenter[0],
that.mapCenter[1],
- 1400.0
+ 1950.0
),
orientation: {
// 指向
@@ -1206,11 +1317,11 @@
}
})
// 最小
- global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 100
- global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = 1100
+ global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 500
+ global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = 1500
// 最大
- global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 400
- global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = 1400
+ global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 950
+ global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = 1950
// 视角旋转
global.viewer.scene.screenSpaceCameraController.enableTilt = false
global.eagleViewer.scene.screenSpaceCameraController.enableTilt = false
--
Gitblit v1.9.3