From b23993b436146d31849d0a6d6b65d01786bea189 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Tue, 04 Jan 2022 14:51:31 +0800
Subject: [PATCH] 部分更改
---
src/components/map/components/dimension.vue | 151 ++++++++++++++++++++++++++++++++++++++------------
1 files changed, 114 insertions(+), 37 deletions(-)
diff --git a/src/components/map/components/dimension.vue b/src/components/map/components/dimension.vue
index 0b7d024..2cea995 100644
--- a/src/components/map/components/dimension.vue
+++ b/src/components/map/components/dimension.vue
@@ -3,8 +3,8 @@
<el-radio-group v-model="dimensionValue"
size="medium"
@change="dimensionChange">
- <el-radio-button label="3 维"></el-radio-button>
<el-radio-button label="2.5维"></el-radio-button>
+ <el-radio-button label="3 维"></el-radio-button>
</el-radio-group>
</div>
</template>
@@ -18,7 +18,7 @@
data () {
return {
DC: null,
- dimensionValue: '3 维',
+ dimensionValue: '2.5维',
newLayer: null,
provider: null,
wallLayer: null,
@@ -131,12 +131,13 @@
var popup = new that.DC.DivForms(that.viewer, {
domId: 'divFormsDomBox',
position: [
- that.DC.Transform.transformWGS84ToCartesian(new that.DC.Position(Number(e.wgs84Position.lng), Number(e.wgs84Position.lat), Number(e.wgs84Position.alt), Number(0), Number(0), Number(0)))
+ that.DC.Transform.transformWGS84ToCartesian(new that.DC.Position(Number(e.wgs84Position.lng), Number(e.wgs84Position.lat), Number(e.wgs84Position.alt)))
]
})
- that.$store.commit('SET_DETAILSPOPUP', true)
- that.$store.commit('SET_PANORAMAPOPUP', false)
+ this.$store.commit('SET_PANORAMAPOPUP', false)
+ this.$store.commit('SET_MONITORPOPUP', false)
+ this.$store.commit('SET_DETAILSPOPUP', true)
})
that.tileset.on(that.DC.MouseEventType.MOUSE_MOVE, e => {
@@ -160,37 +161,42 @@
}
})
- var provider = new that.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
- url: 'http://www.tdtfz.com/OneMapServer/rest/services/fzsw2019/MapServer/WMTS/tile/1.0.0/fzsw2019/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}',
- layer: 'fzsw2019',
- style: 'default',
- tileMatrixSetID: 'default028mm',
- format: 'image/jpgpng',
- tilingScheme: new that.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'
- ]
+ // var provider = new that.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
+ // url: 'http://www.tdtfz.com/OneMapServer/rest/services/fzsw2019/MapServer/WMTS/tile/1.0.0/fzsw2019/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}',
+ // layer: 'fzsw2019',
+ // style: 'default',
+ // tileMatrixSetID: 'default028mm',
+ // format: 'image/jpgpng',
+ // tilingScheme: new that.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'
+ // ]
+ // })
+
+ var provider = new that.DC.Namespace.Cesium.ArcGisMapServerImageryProvider({
+ url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/PingXiang25DMapDN/MapServer'
})
+
that.newLayer = that.viewer.imageryLayers.addImageryProvider(provider)
that.wallLayer = new that.DC.VectorLayer('wallLayer')
@@ -215,7 +221,7 @@
that.viewer.camera.setView({
// Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
// fromDegrees()方法,将经纬度和高程转换为世界坐标
- destination: that.DC.Namespace.Cesium.Cartesian3.fromDegrees(116.36618337, 27.95911915, 1000.0),
+ destination: that.DC.Namespace.Cesium.Cartesian3.fromDegrees(114.03928791, 27.62954732, 1000.0),
orientation: {
// 指向
heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
@@ -227,6 +233,25 @@
this.tilesetLayer.show = false
this.titlesetLayerFlag = true
+
+ that.viewer.on(that.DC.SceneEventType.CAMERA_CHANGED, (e) => {
+ that.camerAzoom(e)
+ })
+
+ // 最小
+ that.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 500
+ // 最大
+ that.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 600000
+ // 设置相机缩小时的速率
+ that.viewer.scene.screenSpaceCameraController._minimumZoomRate = 30000
+ // 设置相机放大时的速率
+ that.viewer.scene.screenSpaceCameraController._maximumZoomRate = 5906376272000
+ // 视角平移
+ that.viewer.scene.screenSpaceCameraController.enableRotate = true
+ // 视角缩放
+ that.viewer.scene.screenSpaceCameraController.enableZoom = true
+ // 视角旋转
+ that.viewer.scene.screenSpaceCameraController.enableTilt = false
}
}
}
@@ -241,6 +266,16 @@
that.silhouetteBlue.selected = []
that.tilesetLayer.show = true
that.viewer.flyTo(that.tileset)
+
+ that.viewer.off(that.DC.SceneEventType.CAMERA_CHANGED, (e) => {
+ that.camerAzoom(e)
+ })
+ // 最小
+ that.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 1.0
+ // 最大
+ that.viewer.scene.screenSpaceCameraController.maximumZoomDistance = Number.POSITIVE_INFINITY
+ // 视角旋转
+ that.viewer.scene.screenSpaceCameraController.enableTilt = true
} else {
that.tilesetLayer.show = false
var provider = new that.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
@@ -281,7 +316,7 @@
that.viewer.camera.setView({
// Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
// fromDegrees()方法,将经纬度和高程转换为世界坐标
- destination: that.DC.Namespace.Cesium.Cartesian3.fromDegrees(116.36618337, 27.95911915, 1000.0),
+ destination: that.DC.Namespace.Cesium.Cartesian3.fromDegrees(114.03928791, 27.62954732, 1000.0),
orientation: {
// 指向
heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
@@ -290,6 +325,48 @@
roll: 0.0
}
})
+
+ that.viewer.on(that.DC.SceneEventType.CAMERA_CHANGED, (e) => {
+ that.camerAzoom(e)
+ })
+ // 最小
+ that.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 500
+ // 最大
+ that.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 600000
+ // 视角旋转
+ that.viewer.scene.screenSpaceCameraController.enableTilt = false
+ }
+ },
+
+ camerAzoom (e) {
+ var that = this
+ return (e) => {
+ const height = Math.ceil(that.viewer.camera.positionCartographic.height)
+
+ if (height < 100) {
+ that.viewer.camera.setView({
+ destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(that.viewer.camera.positionCartographic.longitude, that.viewer.camera.positionCartographic.latitude, 100),
+ orientation: {
+ // 指向
+ heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ };
+ if (height > 600000) {
+ that.viewer.camera.setView({
+ destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(that.viewer.camera.positionCartographic.longitude, that.viewer.camera.positionCartographic.latitude, 600000),
+ orientation: {
+ // 指向
+ heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ }
}
}
}
--
Gitblit v1.9.3