From 3ffc6c12a3fa1deba2e4e9c85c158f19d309f258 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Thu, 31 Mar 2022 16:50:30 +0800
Subject: [PATCH] .
---
src/components/map/components/dimension.vue | 955 +++++++++++++++++++++++++++++++++++++----------------------
1 files changed, 596 insertions(+), 359 deletions(-)
diff --git a/src/components/map/components/dimension.vue b/src/components/map/components/dimension.vue
index 329801b..25da64c 100644
--- a/src/components/map/components/dimension.vue
+++ b/src/components/map/components/dimension.vue
@@ -1,5 +1,6 @@
<template>
<div class="dimension-cut">
+ <!-- <el-button type="primary">{{zoomValue}}</el-button> -->
<el-button
v-show="btnGroupShow"
size="mini"
@@ -36,6 +37,71 @@
import { mapGetters } from 'vuex'
import { getDetail } from '@/api/pc/public/arc'
+let baseLayer = []
+
+const baseLayerImgUrl = [
+ {
+ 5000: [
+ {
+ url: 'img/base/1000/1.png',
+ rectangle: [116.346606, 27.965604, 116.3570815, 27.974063]
+ },
+ {
+ url: 'img/base/1000/2.png',
+ rectangle: [116.3570815, 27.965604, 116.367557, 27.974063]
+ },
+ {
+ url: 'img/base/1000/3.png',
+ rectangle: [116.346606, 27.957145, 116.3570815, 27.965604]
+ },
+ {
+ url: 'img/base/1000/4.png',
+ rectangle: [116.3570815, 27.957145, 116.367557, 27.965604]
+ }
+ ]
+ },
+ {
+ 4000: [
+ {
+ url: 'img/base/2000/1.png',
+ rectangle: [116.346606, 27.96842366, 116.35358966, 27.974063]
+ },
+ {
+ url: 'img/base/2000/2.png',
+ rectangle: [116.35358966, 27.96842366, 116.36057333, 27.974063]
+ },
+ {
+ url: 'img/base/2000/3.png',
+ rectangle: [116.36057333, 27.96842366, 116.367557, 27.974063]
+ },
+ {
+ url: 'img/base/2000/4.png',
+ rectangle: [116.346606, 27.96278433, 116.35358966, 27.96842366]
+ },
+ {
+ url: 'img/base/2000/5.png',
+ rectangle: [116.35358966, 27.96278433, 116.36057333, 27.96842366]
+ },
+ {
+ url: 'img/base/2000/6.png',
+ rectangle: [116.36057333, 27.96278433, 116.367557, 27.96842366]
+ },
+ {
+ url: 'img/base/2000/7.png',
+ rectangle: [116.346606, 27.957145, 116.35358966, 27.96278433]
+ },
+ {
+ url: 'img/base/2000/8.png',
+ rectangle: [116.35358966, 27.957145, 116.36057333, 27.96278433]
+ },
+ {
+ url: 'img/base/2000/9.png',
+ rectangle: [116.36057333, 27.957145, 116.367557, 27.96278433]
+ }
+ ]
+ }
+]
+
let tilesetLayer = null
let tileset = null
@@ -56,12 +122,34 @@
let layerSATtwo = null
let tcLayer = null
+// let viewerHeight = 950
+// let smallViewerHeight = 1950
+
+// const mixVH = 500
+// const maxVH = 950
+// const oneVH = 500
+// const twoVH = 650
+// const fourVH = 800
+// const fiveVH = 950
+
+let viewerHeight = 5000
+let smallViewerHeight = 6000
+
+const mixVH = 2000
+const maxVH = 5000
+
+const oneVH = 2000
+const twoVH = 3000
+const fourVH = 4000
+const fiveVH = 5000
+
// const wallLayer = null
export default {
name: 'dimension',
data () {
return {
+ zoomValue: 0,
btnGroupShow: false,
dimensionValue: '三 维',
// 建筑2.5D地图
@@ -97,11 +185,12 @@
[114.03954722, 27.62819644, 100],
[114.04006133, 27.628038, 100]
],
- mapCenter: [116.35381525,
- 27.95839468, 400.0]
- // mapCenter: [115.871863, 28.743861, 400.0]
+ mapCenter: [116.3570815,
+ 27.965604, 5000]
+ // mapCenter: [115.871863, 28.743861, 950.0]
}
},
+ props: ['wheelFlag', 'startWheel', 'startSmallWheel'],
computed: {
...mapGetters([
'viewerExist',
@@ -202,46 +291,55 @@
videoLayer.addOverlay(cameraVideo)
- baseMapLayer =
- global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
- url: '/wp/{z}/{x}/{y}.png',
- fileExtension: 'png'
- // minimumLevel: 19
- }))
+ // baseMapLayer =
+ // global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
+ // url: '/wp/{z}/{x}/{y}.png',
+ // fileExtension: 'png'
+ // // minimumLevel: 19
+ // }))
- global.viewer.imageryLayers.addImageryProvider(
- new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
- url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/FZ25DMap/MapServer/WMTS',
- layer: 'fzsw2019',
- style: 'default',
- tileMatrixSetID: 'default028mm',
- format: 'image/jpgpng',
- tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
- maximumLevel: 19,
- tileMatrixLabels: [
- '0',
- '1',
- '2',
- '3',
- '4',
- '5',
- '6',
- '7',
- '8',
- '9',
- '10',
- '11',
- '12',
- '13',
- '14',
- '15',
- '16',
- '17',
- '18',
- '19'
- ]
- })
- )
+ that.addBaseLayer()
+
+ // global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
+ // url: '/fz/{z}/{x}/{y}.png',
+ // fileExtension: 'png'
+ // // minimumLevel: 19
+ // }))
+
+ // global.viewer.imageryLayers.addImageryProvider(
+ // new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
+ // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/FZ25DMap/MapServer/WMTS',
+ // // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/PX25DMap/Pingxiang25DMap18000/MapServer/WMTS',
+ // layer: 'fzsw2019',
+ // style: 'default',
+ // tileMatrixSetID: 'default028mm',
+ // format: 'image/jpgpng',
+ // tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
+ // maximumLevel: 19,
+ // tileMatrixLabels: [
+ // '0',
+ // '1',
+ // '2',
+ // '3',
+ // '4',
+ // '5',
+ // '6',
+ // '7',
+ // '8',
+ // '9',
+ // '10',
+ // '11',
+ // '12',
+ // '13',
+ // '14',
+ // '15',
+ // '16',
+ // '17',
+ // '18',
+ // '19'
+ // ]
+ // })
+ // )
// global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.ArcGisMapServerImageryProvider({
// url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/FZ25DMap/MapServer',
@@ -320,11 +418,11 @@
})
// 最小
- global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 100
- global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = 1100
+ global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = mixVH
+ global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = mixVH + 1000
// 最大
- // global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 400
- // global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = 1400
+ global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = maxVH
+ global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = maxVH + 1000
// 设置相机缩小时的速率
global.viewer.scene.screenSpaceCameraController._minimumZoomRate = 2000
@@ -431,187 +529,183 @@
}
})
- document.querySelector('.dc-zoom-controller').children[1].onclick =
- function () {
- if (that.dimensionValue == '真三维') {
- global.viewer.camera.setView({
- // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
- // fromDegrees()方法,将经纬度和高程转换为世界坐标
- destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
- that.mapCenter[0],
- that.mapCenter[1],
- 220.0
- ),
- orientation: {
- // 指向
- heading: global.DC.Namespace.Cesium.Math.toRadians(-9),
- // 视角
- pitch: global.DC.Namespace.Cesium.Math.toRadians(-34.54),
- roll: 0.0
- }
- })
- } else {
- global.viewer.camera.setView({
- // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
- // fromDegrees()方法,将经纬度和高程转换为世界坐标
- destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
- that.mapCenter[0],
- that.mapCenter[1],
- 400.0
- ),
- orientation: {
- // 指向
- heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // 视角
- pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- roll: 0.0
- }
- })
+ this.$nextTick(() => {
+ document.querySelector('.dc-zoom-controller').children[1].onclick =
+ function () {
+ if (that.dimensionValue == '真三维') {
+ global.viewer.camera.setView({
+ // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
+ // fromDegrees()方法,将经纬度和高程转换为世界坐标
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
+ that.mapCenter[0],
+ that.mapCenter[1],
+ 220.0
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(-9),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-34.54),
+ roll: 0.0
+ }
+ })
+ } else {
+ global.viewer.camera.setView({
+ // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
+ // fromDegrees()方法,将经纬度和高程转换为世界坐标
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
+ that.mapCenter[0],
+ that.mapCenter[1],
+ that.mapCenter[2]
+ ),
+ 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[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 != '真三维'
+ ) {
+ if (viewerHeight == oneVH) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ twoVH
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ viewerHeight = twoVH
+ this.$emit('change-wheel', false, 'startWheel')
+ 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,
- // 200
- // ),
- // orientation: {
- // // 指向
- // heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // // 视角
- // pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- // roll: 0.0
- // }
- // })
+ if (viewerHeight == twoVH) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ fourVH
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ viewerHeight = fourVH
+ this.$emit('change-wheel', false, 'startWheel')
+ return
+ }
- // return
- // }
+ if (viewerHeight == fourVH) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ fiveVH
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ viewerHeight = fiveVH
+ this.$emit('change-wheel', false, 'startWheel')
+ }
+ }
+ }
- // 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
- // }
- // })
+ document.querySelector('.dc-zoom-controller').children[0].onclick =
+ function () {
+ if (
+ that.dimensionValue != undefined &&
+ that.dimensionValue != '真三维'
+ ) {
+ if (viewerHeight == fiveVH) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ fourVH
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ viewerHeight = fourVH
+ this.$emit('change-wheel', false, 'startWheel')
+ return
+ }
- // return
- // }
+ if (viewerHeight == fourVH) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ twoVH
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ viewerHeight = twoVH
+ this.$emit('change-wheel', false, 'startWheel')
+ 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 (viewerHeight == twoVH) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ oneVH
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ viewerHeight = oneVH
+ this.$emit('change-wheel', false, 'startWheel')
+ }
+ }
+ }
+ })
- // 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
- // }
- // })
-
- // 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
- // }
- // })
-
- // 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
- // }
- // })
- // }
- // }
- // }
-
- // global.viewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent)
- // global.eagleViewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.smallMapCameraEvent)
+ global.viewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent)
+ global.eagleViewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.smallMapCameraEvent)
}
}
}
@@ -627,6 +721,18 @@
mouseMoveEvent (e) {
var that = this
+
+ function heightToZoom (height) {
+ var A = 40487.57
+ var B = 0.00007096758
+ var C = 91610.74
+ var D = -40467.74
+ return Math.round(D + (A - D) / (1 + Math.pow(height / C, B)))
+ }
+ var height = Math.ceil(global.viewer.camera.positionCartographic.height)
+ var zoom = heightToZoom(height)
+
+ that.zoomValue = zoom
if (that.closeMapClick) {
return
@@ -680,11 +786,32 @@
}
},
- mapCameraEvent () {
- const height = Math.ceil(
- global.viewer.camera.positionCartographic.height
- )
+ addBaseLayer () {
+ if (baseLayer.length > 0) {
+ baseLayer.forEach(item => {
+ global.viewer.imageryLayers.remove(
+ item
+ )
+ })
+ }
+ baseLayer = []
+
+ baseLayerImgUrl.forEach(item => {
+ if (item[viewerHeight]) {
+ item[viewerHeight].forEach(sm => {
+ 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)
+ })
+ }
+ })
+ },
+
+ mapCameraEvent () {
global.viewer.camera.setView({
orientation: {
// 指向
@@ -695,80 +822,136 @@
}
})
- 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 (this.startWheel == false) 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 (this.wheelFlag) { // 下
+ if (viewerHeight == fiveVH) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ fourVH
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ viewerHeight = fourVH
+ this.$emit('change-wheel', false, 'startWheel')
+ this.addBaseLayer()
+ 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 (viewerHeight == fourVH) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ twoVH
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ viewerHeight = twoVH
+ this.$emit('change-wheel', false, 'startWheel')
+ this.addBaseLayer()
+ 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 (viewerHeight == twoVH) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ oneVH
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ viewerHeight = oneVH
+ this.$emit('change-wheel', false, 'startWheel')
+ this.addBaseLayer()
+ }
+ } else { // 上
+ if (viewerHeight == oneVH) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ twoVH
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ viewerHeight = twoVH
+ this.$emit('change-wheel', false, 'startWheel')
+ this.addBaseLayer()
+ return
+ }
+
+ if (viewerHeight == twoVH) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ fourVH
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ viewerHeight = fourVH
+ this.$emit('change-wheel', false, 'startWheel')
+ this.addBaseLayer()
+ return
+ }
+
+ if (viewerHeight == fourVH) {
+ global.viewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.viewer.camera.positionCartographic.longitude,
+ global.viewer.camera.positionCartographic.latitude,
+ fiveVH
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ viewerHeight = fiveVH
+ this.$emit('change-wheel', false, 'startWheel')
+ this.addBaseLayer()
+ }
}
},
smallMapCameraEvent () {
- const height = Math.ceil(
- global.eagleViewer.camera.positionCartographic.height
- )
-
global.eagleViewer.camera.setView({
orientation: {
// 指向
@@ -779,72 +962,126 @@
}
})
- 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 (this.startSmallWheel == false) 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 (this.wheelFlag) { // 下
+ if (smallViewerHeight == fiveVH + 1000) {
+ global.eagleViewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.eagleViewer.camera.positionCartographic.longitude,
+ global.eagleViewer.camera.positionCartographic.latitude,
+ fourVH + 1000
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ smallViewerHeight = fourVH + 1000
+ this.$emit('change-wheel', false, 'startSmallWheel')
+ 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 (smallViewerHeight == fourVH + 1000) {
+ global.eagleViewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.eagleViewer.camera.positionCartographic.longitude,
+ global.eagleViewer.camera.positionCartographic.latitude,
+ twoVH + 1000
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ smallViewerHeight = twoVH + 1000
+ this.$emit('change-wheel', false, 'startSmallWheel')
+ 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 (smallViewerHeight == twoVH + 1000) {
+ global.eagleViewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.eagleViewer.camera.positionCartographic.longitude,
+ global.eagleViewer.camera.positionCartographic.latitude,
+ oneVH + 1000
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ smallViewerHeight = oneVH + 1000
+ this.$emit('change-wheel', false, 'startSmallWheel')
+ }
+ } else { // 上
+ if (smallViewerHeight == oneVH + 1000) {
+ global.eagleViewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.eagleViewer.camera.positionCartographic.longitude,
+ global.eagleViewer.camera.positionCartographic.latitude,
+ twoVH + 1000
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ smallViewerHeight = twoVH + 1000
+ this.$emit('change-wheel', false, 'startSmallWheel')
+ return
+ }
+
+ if (smallViewerHeight == twoVH + 1000) {
+ global.eagleViewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.eagleViewer.camera.positionCartographic.longitude,
+ global.eagleViewer.camera.positionCartographic.latitude,
+ fourVH + 1000
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ smallViewerHeight = fourVH + 1000
+ this.$emit('change-wheel', false, 'startSmallWheel')
+ return
+ }
+
+ if (smallViewerHeight == fourVH + 1000) {
+ global.eagleViewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.eagleViewer.camera.positionCartographic.longitude,
+ global.eagleViewer.camera.positionCartographic.latitude,
+ fiveVH + 1000
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ smallViewerHeight = fiveVH + 1000
+ this.$emit('change-wheel', false, 'startSmallWheel')
+ }
}
},
@@ -1178,7 +1415,7 @@
destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
that.mapCenter[0],
that.mapCenter[1],
- 400.0
+ that.mapCenter[2]
),
orientation: {
// 指向
@@ -1195,7 +1432,7 @@
destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
that.mapCenter[0],
that.mapCenter[1],
- 1400.0
+ maxVH + 1000
),
orientation: {
// 指向
@@ -1206,11 +1443,11 @@
}
})
// 最小
- global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 100
- global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = 1100
+ global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = mixVH
+ global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = mixVH + 1000
// 最大
- global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 400
- global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = 1400
+ global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = maxVH
+ global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = maxVH + 1000
// 视角旋转
global.viewer.scene.screenSpaceCameraController.enableTilt = false
global.eagleViewer.scene.screenSpaceCameraController.enableTilt = false
--
Gitblit v1.9.3