4 files modified
1 files added
| New file |
| | |
| | | <template> |
| | | <div class="dimension-cut"> |
| | | <el-button |
| | | v-show="btnGroupShow" |
| | | size="mini" |
| | | class="three-stm" |
| | | type="primary" |
| | | @click="locationSTM" |
| | | >s3m</el-button> |
| | | |
| | | <el-button |
| | | v-show="btnGroupShow" |
| | | size="mini" |
| | | class="sat-stm" |
| | | type="primary" |
| | | @click="locationSAT" |
| | | >科技</el-button> |
| | | |
| | | <el-button |
| | | v-show="btnGroupShow" |
| | | size="mini" |
| | | class="sat-tc" |
| | | type="primary" |
| | | @click="locationTC" |
| | | >热力图</el-button> |
| | | |
| | | <el-radio-group v-model="dimensionValue" size="medium" @change="dimensionChange"> |
| | | <el-radio-button label="三 维"></el-radio-button> |
| | | <el-radio-button label="真三维"></el-radio-button> |
| | | </el-radio-group> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import axios from 'axios' |
| | | import { mapGetters } from 'vuex' |
| | | import { getDetail } from '@/api/pc/public/arc' |
| | | |
| | | let tilesetLayer = null |
| | | |
| | | let tileset = null |
| | | |
| | | let silhouetteBlue = null |
| | | |
| | | let baseMapLayer = null |
| | | |
| | | let DefaultAreaLayer = null |
| | | |
| | | let layerGroup = null |
| | | |
| | | let select = null |
| | | |
| | | let streenMlayer = null |
| | | |
| | | let layerSat = null |
| | | let layerSATtwo = null |
| | | let tcLayer = null |
| | | |
| | | // const wallLayer = null |
| | | |
| | | export default { |
| | | name: 'dimension', |
| | | data () { |
| | | return { |
| | | btnGroupShow: false, |
| | | dimensionValue: '三 维', |
| | | // 建筑2.5D地图 |
| | | // 建筑2.5D面数据 |
| | | titlesetLayerFlag: false, |
| | | wallArr: [ |
| | | [114.04006133, 27.628038, 100], |
| | | [114.04020623, 27.62809403, 100], |
| | | [114.04025389, 27.62819931, 100], |
| | | [114.04032823, 27.62827743, 100], |
| | | [114.0410871, 27.62918798, 100], |
| | | [114.04001425, 27.62986815, 100], |
| | | [114.04001615, 27.62986817, 100], |
| | | [114.03992451, 27.62998379, 100], |
| | | [114.03967878, 27.62999684, 100], |
| | | [114.03940001, 27.63008698, 100], |
| | | [114.03951075, 27.63047135, 100], |
| | | [114.03946107, 27.63056152, 100], |
| | | [114.03927571, 27.63072325, 100], |
| | | [114.03871751, 27.63128845, 100], |
| | | [114.03872079, 27.63135594, 100], |
| | | [114.03869211, 27.63139169, 100], |
| | | [114.03960653, 27.63200726, 100], |
| | | [114.03945732, 27.63215207, 100], |
| | | [114.03760837, 27.63092563, 100], |
| | | [114.03770336, 27.63078037, 100], |
| | | [114.03782957, 27.63072932, 100], |
| | | [114.03787347, 27.63068209, 100], |
| | | [114.03824591, 27.62887902, 100], |
| | | [114.03837943, 27.6289105, 100], |
| | | [114.03863853, 27.62868839, 100], |
| | | [114.03905656, 27.62843592, 100], |
| | | [114.03954722, 27.62819644, 100], |
| | | [114.04006133, 27.628038, 100] |
| | | ], |
| | | mapCenter: [116.35381525, |
| | | 27.95839468, 400.0] |
| | | // mapCenter: [115.871863, 28.743861, 400.0] |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapGetters([ |
| | | 'viewerExist', |
| | | // 校区内导航的显示关闭 |
| | | 'campusNavFlag', |
| | | 'orgNavBarFlag', |
| | | 'arcNavBarFlag', |
| | | 'closeMapClick' // 关闭地图点击,防止新增标签误触 |
| | | ]) |
| | | }, |
| | | created () { |
| | | select = { |
| | | overlay: null, |
| | | color: null |
| | | } |
| | | }, |
| | | watch: { |
| | | viewerExist: { |
| | | immediate: true, |
| | | handler (newCode, oldCode) { |
| | | if (this.titlesetLayerFlag == false && newCode == true) { |
| | | var that = this |
| | | |
| | | silhouetteBlue = |
| | | global.DC.Namespace.Cesium.PostProcessStageLibrary.createEdgeDetectionStage() |
| | | silhouetteBlue.uniforms.color = |
| | | global.DC.Namespace.Cesium.Color.fromBytes(9, 162, 40) |
| | | silhouetteBlue.uniforms.length = 0.01 |
| | | silhouetteBlue.selected = [] |
| | | |
| | | global.viewer.scene.postProcessStages.add( |
| | | global.DC.Namespace.Cesium.PostProcessStageLibrary.createSilhouetteStage( |
| | | [silhouetteBlue] |
| | | ) |
| | | ) |
| | | |
| | | 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=9ae78c51a0a28f06444d541148496e36', |
| | | subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'], |
| | | format: 'image/jpeg', |
| | | show: true, |
| | | maximumLevel: 18 |
| | | }) |
| | | ) |
| | | |
| | | 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=9ae78c51a0a28f06444d541148496e36', |
| | | subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'], |
| | | format: 'image/jpeg', |
| | | show: true, |
| | | maximumLevel: 18 |
| | | }) |
| | | ) |
| | | |
| | | // global.viewer.imageryLayers.addImageryProvider( |
| | | // new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({ |
| | | // url: ' http://t1.tianditu.gov.cn/vec_w/wmts?tk=9ae78c51a0a28f06444d541148496e36', |
| | | // type: 'wmts', |
| | | // layer: 'vec', |
| | | // style: 'default', |
| | | // format: 'tiles', |
| | | // tileMatrixSetID: 'w', |
| | | // show: true, |
| | | // maximumLevel: 18 |
| | | // }) |
| | | // ) |
| | | |
| | | // global.viewer.imageryLayers.addImageryProvider( |
| | | // new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({ |
| | | // url: ' http://t1.tianditu.gov.cn/cva_w/wmts?tk=9ae78c51a0a28f06444d541148496e36', |
| | | // type: 'wmts', |
| | | // layer: 'cva', |
| | | // style: 'default', |
| | | // format: 'tiles', |
| | | // tileMatrixSetID: 'w', |
| | | // show: true, |
| | | // maximumLevel: 18 |
| | | // }) |
| | | // ) |
| | | |
| | | const videoLayer = new global.DC.CameraVideoLayer('video-layer').addTo( |
| | | global.viewer |
| | | ) |
| | | |
| | | const cameraVideo = new global.DC.CameraVideo( |
| | | new global.DC.Position(114.03935976, 27.62939045, 100.25, 4.2, -90), |
| | | document.getElementById('video') |
| | | ) |
| | | cameraVideo.setStyle({ |
| | | fov: 30, |
| | | far: 120, |
| | | near: 1, |
| | | aspectRatio: 1.3, |
| | | alpha: 0.7 |
| | | }) |
| | | |
| | | videoLayer.addOverlay(cameraVideo) |
| | | |
| | | 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' |
| | | ] |
| | | }) |
| | | ) |
| | | |
| | | // global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.ArcGisMapServerImageryProvider({ |
| | | // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/FZ25DMap/MapServer', |
| | | // layer: 'fzsw2019', |
| | | // })) |
| | | |
| | | // wallLayer = new global.DC.VectorLayer('wallLayer') |
| | | // global.viewer.addLayer(wallLayer) |
| | | |
| | | // that.wallArr.forEach((item) => { |
| | | // item = item.join(',') |
| | | // }) |
| | | // that.wallArr = that.wallArr.join(';') |
| | | // const wall = new global.DC.Wall(that.wallArr) |
| | | // wall.setStyle({ |
| | | // material: new global.DC.WallTrailMaterialProperty({ |
| | | // color: global.DC.Namespace.Cesium.Color.fromBytes(0, 142, 255, 150), |
| | | // // color: global.DC.Color.CYAN, |
| | | // speed: 10 |
| | | // }) |
| | | // }) |
| | | // wallLayer.addOverlay(wall) |
| | | |
| | | // global.viewer.camera.setView({ |
| | | // // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州 |
| | | // // fromDegrees()方法,将经纬度和高程转换为世界坐标 |
| | | // destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(114.03928791, 27.62954732, 400.0), |
| | | // orientation: { |
| | | // // 指向 |
| | | // heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0), |
| | | // // 视角 |
| | | // pitch: global.DC.Namespace.Cesium.Math.toRadians(-90), |
| | | // roll: 0.0 |
| | | // } |
| | | // }) |
| | | |
| | | // setTimeout(() => { |
| | | // global.viewer.camera.flyTo({ |
| | | // // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州 |
| | | // // fromDegrees()方法,将经纬度和高程转换为世界坐标 |
| | | // destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(114.0351, 27.6314, 200.0), |
| | | // duration: 5, |
| | | // complete: () => { |
| | | // global.viewer.camera.flyTo({ |
| | | // // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州 |
| | | // // fromDegrees()方法,将经纬度和高程转换为世界坐标 |
| | | // destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(114.0351, 27.6314, 200.0), |
| | | // orientation: { |
| | | // // 指向 |
| | | // heading: global.DC.Namespace.Cesium.Math.toRadians(108), |
| | | // // 视角 |
| | | // pitch: global.DC.Namespace.Cesium.Math.toRadians(-26.46), |
| | | // roll: 0.0 |
| | | // } |
| | | // }) |
| | | // } |
| | | // }) |
| | | // }, 400) |
| | | that.titlesetLayerFlag = true |
| | | |
| | | 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 |
| | | } |
| | | }) |
| | | |
| | | // 最小 |
| | | global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 100 |
| | | global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = 1100 |
| | | // 最大 |
| | | global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 400 |
| | | global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = 1400 |
| | | |
| | | // 设置相机缩小时的速率 |
| | | global.viewer.scene.screenSpaceCameraController._minimumZoomRate = 2000 |
| | | // global.eagleViewer.scene.screenSpaceCameraController._minimumZoomRate = 2000 |
| | | // 设置相机放大时的速率 |
| | | global.viewer.scene.screenSpaceCameraController._maximumZoomRate = 5906376272000 |
| | | // global.eagleViewer.scene.screenSpaceCameraController._maximumZoomRate = 5906376272000 |
| | | // 视角平移 |
| | | global.viewer.scene.screenSpaceCameraController.enableRotate = true |
| | | global.eagleViewer.scene.screenSpaceCameraController.enableRotate = true |
| | | // 视角缩放 |
| | | global.viewer.scene.screenSpaceCameraController.enableZoom = true |
| | | global.eagleViewer.scene.screenSpaceCameraController.enableZoom = true |
| | | // 视角旋转 |
| | | 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 |
| | | } |
| | | if (e.overlay != undefined && e.layer.id == 'DefaultAreaLayer') { |
| | | var rid = |
| | | e.overlay.attr['楼栋号'] == '8栋' |
| | | ? '9栋' |
| | | : e.overlay.attr['楼栋号'] == '9栋' |
| | | ? '8栋' |
| | | : e.overlay.attr['楼栋号'] |
| | | this.$store.commit('CLEAR_ALL', null) |
| | | getDetail({ mechanismname: '香琴湾' + rid }).then((res) => { |
| | | global.viewer.scene.globe.depthTestAgainstTerrain = false |
| | | var result = res.data.data |
| | | |
| | | var imgArr = result.tpurl.split(',') |
| | | this.$store.commit('SET_POPUPBGURL', imgArr[0]) |
| | | this.$store.commit('SET_POPUPQRURL', result.codeurl) |
| | | this.$store.commit('SET_POINTPOSITION', [ |
| | | Number(e.wgs84Position.lng), |
| | | Number(e.wgs84Position.lat), |
| | | Number(e.wgs84Position.alt), |
| | | Number(0), |
| | | Number(0), |
| | | Number(0) |
| | | ]) |
| | | this.$store.commit('SET_STATENAME', result.mechanismname) |
| | | this.$store.commit('SET_SITENAME', result.address) |
| | | this.$store.commit('SET_TELEPHONE', result.telephone) |
| | | this.$store.commit('SET_INTRODUCETEXT', result.introduce) |
| | | this.$store.commit('SET_PANORAMAURL', result.panoramaurl) |
| | | this.$store.commit('SET_POPUPIMGATLAS', imgArr) |
| | | if (result.videourl && result.videourl != '') { |
| | | this.$store.commit('SET_MONITORURL', result.videourl) |
| | | } |
| | | if (result.jx != undefined && result.jx != '') { |
| | | var tabOne = res.data.data[0].jx.split(',') |
| | | this.$store.commit('SET_TEACHLIST', tabOne) |
| | | } else { |
| | | this.$store.commit('SET_TEACHLIST', []) |
| | | } |
| | | |
| | | if (result.sh != undefined && result.sh != '') { |
| | | var tabTwo = res.data.data[0].sh.split(',') |
| | | this.$store.commit('SET_LIVELIST', tabTwo) |
| | | } else { |
| | | this.$store.commit('SET_LIVELIST', []) |
| | | } |
| | | |
| | | // 定制化窗体 |
| | | // eslint-disable-next-line no-unused-vars |
| | | var popup = new global.DC.DivForms(global.viewer, { |
| | | domId: 'divFormsDomBox', |
| | | position: [ |
| | | global.DC.Transform.transformWGS84ToCartesian( |
| | | new global.DC.Position( |
| | | Number(e.wgs84Position.lng), |
| | | Number(e.wgs84Position.lat), |
| | | Number(e.wgs84Position.alt) |
| | | ) |
| | | ) |
| | | ] |
| | | }) |
| | | |
| | | this.$store.commit('SET_PANORAMAPOPUP', false) |
| | | this.$store.commit('SET_MONITORPOPUP', false) |
| | | this.$store.commit('SET_DETAILSPOPUP', true) |
| | | }) |
| | | |
| | | global.viewer.flyToPosition( |
| | | new global.DC.Position( |
| | | Number(e.wgs84Position.lng), |
| | | Number(e.wgs84Position.lat), |
| | | 300, |
| | | Number(0), |
| | | Number(-90), |
| | | Number(0) |
| | | ), |
| | | () => { }, |
| | | 0 |
| | | ) |
| | | } |
| | | }) |
| | | |
| | | 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 |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | |
| | | 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 |
| | | } |
| | | }) |
| | | |
| | | 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 |
| | | } |
| | | }) |
| | | |
| | | 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 |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | |
| | | 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) |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | locationSTM () { |
| | | global.viewer.flyToPosition('116.45793269658417,39.92711385557482,617.5967826044838,181.95219395269424,-21.286437065473546') |
| | | }, |
| | | |
| | | mouseMoveEvent (e) { |
| | | var that = this |
| | | |
| | | if (that.closeMapClick) { |
| | | return |
| | | } |
| | | |
| | | if (e.overlay != undefined && e.overlay != null && e.layer.id == 'DefaultAreaLayer') { |
| | | if (select.overlay != null) { |
| | | if (e.overlay != select.overlay) { |
| | | select.overlay.setStyle({ |
| | | material: select.color, |
| | | outline: false |
| | | }) |
| | | |
| | | select.overlay = null |
| | | select.color = null |
| | | } |
| | | } |
| | | |
| | | if (select.overlay == null) { |
| | | select.overlay = e.overlay |
| | | |
| | | select.color = e.overlay._style.material |
| | | select.overlay.setStyle({ |
| | | outline: true, |
| | | outlineColor: global.DC.Namespace.Cesium.Color.fromBytes( |
| | | 3, |
| | | 255, |
| | | 13, |
| | | 255 |
| | | ), // 边框颜色 |
| | | outlineWidth: 10, // 边框大小, |
| | | height: 0.01, |
| | | material: global.DC.Namespace.Cesium.Color.fromBytes( |
| | | 108, |
| | | 245, |
| | | 113, |
| | | 158 |
| | | ) |
| | | }) |
| | | } |
| | | } else { |
| | | if (select.overlay != null) { |
| | | select.overlay.setStyle({ |
| | | material: select.color, |
| | | outline: false |
| | | }) |
| | | |
| | | select.overlay = null |
| | | select.color = null |
| | | } |
| | | } |
| | | }, |
| | | |
| | | mapCameraEvent () { |
| | | const height = Math.ceil( |
| | | global.viewer.camera.positionCartographic.height |
| | | ) |
| | | |
| | | global.viewer.camera.setView({ |
| | | orientation: { |
| | | // 指向 |
| | | heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0), |
| | | // 视角 |
| | | pitch: global.DC.Namespace.Cesium.Math.toRadians(-90), |
| | | roll: 0.0 |
| | | } |
| | | }) |
| | | |
| | | 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 > 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 > 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 > 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 |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | smallMapCameraEvent () { |
| | | const height = Math.ceil( |
| | | global.eagleViewer.camera.positionCartographic.height |
| | | ) |
| | | |
| | | global.eagleViewer.camera.setView({ |
| | | orientation: { |
| | | // 指向 |
| | | heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0), |
| | | // 视角 |
| | | pitch: global.DC.Namespace.Cesium.Math.toRadians(-90), |
| | | roll: 0.0 |
| | | } |
| | | }) |
| | | |
| | | 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 (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 > 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 > 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 |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | 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' |
| | | ) |
| | | .then((resultData) => { |
| | | resultData.data.features.forEach((item) => { |
| | | item.geometry.rings[0].forEach((it) => { |
| | | it = it.join(',') |
| | | }) |
| | | |
| | | item.geometry.rings[0] = item.geometry.rings[0].join(';') |
| | | |
| | | const polygon = new global.DC.Polygon(item.geometry.rings[0]) |
| | | polygon.attr = item.attributes |
| | | |
| | | polygon.setStyle({ |
| | | material: global.DC.Namespace.Cesium.Color.fromBytes( |
| | | 255, |
| | | 255, |
| | | 255, |
| | | 1 |
| | | ) |
| | | }) |
| | | |
| | | DefaultAreaLayer.addOverlay(polygon) |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | removeLayers () { |
| | | layerGroup.removeLayer(DefaultAreaLayer) |
| | | DefaultAreaLayer = null |
| | | global.viewer.removeLayerGroup(layerGroup) |
| | | layerGroup = null |
| | | }, |
| | | |
| | | tilesetClick (e) { |
| | | var that = this |
| | | if (that.closeMapClick) { |
| | | return |
| | | } |
| | | global.viewer.scene.globe.depthTestAgainstTerrain = false |
| | | |
| | | if (e.overlay && e.overlay.attr.arcName != null) { |
| | | this.$store.commit('CLEAR_ALL', null) |
| | | getDetail({ |
| | | mechanismname: e.overlay.attr.arcName |
| | | }).then((res) => { |
| | | if (res && JSON.stringify(res.data.data) != '{}') { |
| | | var result = res.data.data |
| | | |
| | | var imgArr = result.tpurl.split(',') |
| | | this.$store.commit('SET_POPUPBGURL', imgArr[0]) |
| | | this.$store.commit('SET_POPUPQRURL', result.codeurl) |
| | | this.$store.commit('SET_POINTPOSITION', [ |
| | | Number(e.wgs84Position.lng), |
| | | Number(e.wgs84Position.lat), |
| | | Number(e.wgs84Position.alt), |
| | | Number(0), |
| | | Number(0), |
| | | Number(0) |
| | | ]) |
| | | this.$store.commit('SET_STATENAME', result.mechanismname) |
| | | this.$store.commit('SET_SITENAME', result.address) |
| | | this.$store.commit('SET_TELEPHONE', result.telephone) |
| | | this.$store.commit('SET_INTRODUCETEXT', result.introduce) |
| | | this.$store.commit('SET_PANORAMAURL', result.panoramaurl) |
| | | this.$store.commit('SET_POPUPIMGATLAS', imgArr) |
| | | if (result.videourl && result.videourl != '') { |
| | | this.$store.commit('SET_MONITORURL', result.videourl) |
| | | } |
| | | if (result.jx != undefined && result.jx != '') { |
| | | var tabOne = res.data.data[0].jx.split(',') |
| | | this.$store.commit('SET_TEACHLIST', tabOne) |
| | | } else { |
| | | this.$store.commit('SET_TEACHLIST', []) |
| | | } |
| | | |
| | | if (result.sh != undefined && result.sh != '') { |
| | | var tabTwo = res.data.data[0].sh.split(',') |
| | | this.$store.commit('SET_LIVELIST', tabTwo) |
| | | } else { |
| | | this.$store.commit('SET_LIVELIST', []) |
| | | } |
| | | |
| | | // 定制化窗体 |
| | | // eslint-disable-next-line no-unused-vars |
| | | var popup = new global.DC.DivForms(global.viewer, { |
| | | domId: 'divFormsDomBox', |
| | | position: [ |
| | | global.DC.Transform.transformWGS84ToCartesian( |
| | | new global.DC.Position( |
| | | Number(e.wgs84Position.lng), |
| | | Number(e.wgs84Position.lat), |
| | | Number(e.wgs84Position.alt) |
| | | ) |
| | | ) |
| | | ] |
| | | }) |
| | | |
| | | this.$store.commit('SET_PANORAMAPOPUP', false) |
| | | this.$store.commit('SET_MONITORPOPUP', false) |
| | | this.$store.commit('SET_DETAILSPOPUP', true) |
| | | } |
| | | }) |
| | | |
| | | global.viewer.flyToPosition( |
| | | new global.DC.Position( |
| | | Number(e.wgs84Position.lng + 0.00070806), |
| | | Number(e.wgs84Position.lat - 0.00261205), |
| | | 300, |
| | | Number(-9), |
| | | Number(-34.54), |
| | | Number(0) |
| | | ) |
| | | ) |
| | | } |
| | | }, |
| | | |
| | | locationSAT () { |
| | | global.viewer.flyToPosition('121.4941629,31.2091462,1859.56,0,-28.71') |
| | | }, |
| | | |
| | | locationTC () { |
| | | global.viewer.flyToPosition('120.670183527,31.348282115,109658.22,0,-89.90659095062371') |
| | | }, |
| | | |
| | | generatePosition (num) { |
| | | const list = [] |
| | | for (let i = 0; i < num; i++) { |
| | | const lng = 120.38105869 + Math.random() * 0.5 |
| | | const lat = 31.10115627 + Math.random() * 0.5 |
| | | list.push(new global.DC.Position(lng, lat)) |
| | | } |
| | | return list |
| | | }, |
| | | |
| | | removeTC () { |
| | | global.viewer.removeLayer(tcLayer) |
| | | tcLayer = null |
| | | }, |
| | | |
| | | createTC () { |
| | | tcLayer = new global.DC.HeatLayer('tcLayer', { |
| | | useGround: true, |
| | | radius: 40 |
| | | }) |
| | | global.viewer.addLayer(tcLayer) |
| | | const positions = this.generatePosition(3000) |
| | | tcLayer.setPositions(positions) |
| | | }, |
| | | |
| | | // 科技感删除 |
| | | removeSAT () { |
| | | global.viewer.removeLayer(layerSat) |
| | | global.viewer.removeLayer(layerSATtwo) |
| | | layerSat = null |
| | | layerSATtwo = null |
| | | }, |
| | | |
| | | // 科技感添加 |
| | | createSAT () { |
| | | function generatePosition (num, isAdd) { |
| | | const list = [] |
| | | for (let i = 0; i < num; i++) { |
| | | const lng = 121.49536592256028 + Math.random() * 0.04 * (isAdd ? 1 : -1) |
| | | const lat = 31.241616722278213 + Math.random() * 0.04 * (isAdd ? 1 : -1) |
| | | list.push({ lng, lat }) |
| | | } |
| | | return list |
| | | } |
| | | |
| | | layerSat = new global.DC.TilesetLayer('layerSat').addTo(global.viewer) |
| | | |
| | | const build = new global.DC.Tileset( |
| | | 'http://resource.dvgis.cn/data/3dtiles/ljz/tileset.json', |
| | | { skipLevels: true } |
| | | ) |
| | | |
| | | const fs = ` |
| | | varying vec3 v_positionEC; |
| | | void main(void){ |
| | | vec4 position = czm_inverseModelView * vec4(v_positionEC,1); // 位置 |
| | | float glowRange = 100.0; // 光环的移动范围(高度) |
| | | gl_FragColor = vec4(0.2, 0.5, 1.0, 1.0); // 颜色 |
| | | gl_FragColor *= vec4(vec3(position.z / 100.0), 1.0); // 渐变 |
| | | // 动态光环 |
| | | float time = fract(czm_frameNumber / 360.0); |
| | | time = abs(time - 0.5) * 2.0; |
| | | float diff = step(0.005, abs( clamp(position.z / glowRange, 0.0, 1.0) - time)); |
| | | gl_FragColor.rgb += gl_FragColor.rgb * (1.0 - diff); |
| | | } |
| | | ` |
| | | build.setCustomShader(fs) |
| | | |
| | | layerSat.addOverlay(build) |
| | | |
| | | layerSATtwo = new global.DC.PrimitiveLayer('layer').addTo(global.viewer) |
| | | |
| | | let positions = generatePosition(50, true) |
| | | |
| | | positions = positions.concat(generatePosition(50)) |
| | | |
| | | positions.forEach(item => { |
| | | const position = global.DC.Position.fromObject(item) |
| | | const end = position.copy() |
| | | end.alt = 5000 * Math.random() |
| | | const line = new global.DC.FlowLinePrimitive([position, end], 0.5) |
| | | line.setStyle({ |
| | | speed: 6 * Math.random(), |
| | | color: global.DC.Color.fromCssColorString('rgb(141,172,172)'), |
| | | percent: 0.1, |
| | | gradient: 0.01 |
| | | }) |
| | | layerSATtwo.addOverlay(line) |
| | | }) |
| | | }, |
| | | |
| | | dimensionChange () { |
| | | var that = this |
| | | |
| | | that.$store.commit('SET_TWOORTHREE', that.dimensionValue) |
| | | |
| | | if (that.dimensionValue == '真三维') { |
| | | that.btnGroupShow = true |
| | | that.createSAT() |
| | | that.createTC() |
| | | 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) |
| | | that.removeLayers() |
| | | global.viewer.imageryLayers.remove(baseMapLayer) |
| | | baseMapLayer = null |
| | | |
| | | silhouetteBlue.selected = [] |
| | | |
| | | tilesetLayer = new global.DC.TilesetLayer('tilesetLayer') |
| | | global.viewer.addLayer(tilesetLayer) |
| | | tileset = new global.DC.Tileset('/mx/tileset.json', { |
| | | luminanceAtZenith: 0.4, |
| | | // cullWithChildrenBounds: false, |
| | | // cullRequestsWhileMoving: false, |
| | | // skipLevelOfDetail: false, |
| | | shadows: global.DC.Namespace.Cesium.ShadowMode.DISABLED |
| | | }) |
| | | tilesetLayer.addOverlay(tileset) |
| | | tileset.on(global.DC.MouseEventType.CLICK, that.tilesetClick) |
| | | tilesetLayer.show = true |
| | | |
| | | streenMlayer = new global.DC.S3MLayer('streenMlayer', 'http://resource.dvgis.cn/data/3dtiles/CBD/cbd.scp') |
| | | global.viewer.addLayer(streenMlayer) |
| | | // 最小 |
| | | global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 1.0 |
| | | global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = 1.0 |
| | | // 最大 |
| | | global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = |
| | | Number.POSITIVE_INFINITY |
| | | global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = |
| | | Number.POSITIVE_INFINITY |
| | | // 视角旋转 |
| | | global.viewer.scene.screenSpaceCameraController.enableTilt = true |
| | | global.eagleViewer.scene.screenSpaceCameraController.enableTilt = true |
| | | // 115.877863,28.741661 |
| | | 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 |
| | | } |
| | | }) |
| | | |
| | | global.eagleViewer.camera.setView({ |
| | | // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州 |
| | | // fromDegrees()方法,将经纬度和高程转换为世界坐标 |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees( |
| | | that.mapCenter[0], |
| | | that.mapCenter[1], |
| | | 1220.0 |
| | | ), |
| | | orientation: { |
| | | // 指向 |
| | | heading: global.DC.Namespace.Cesium.Math.toRadians(-9), |
| | | // 视角 |
| | | pitch: global.DC.Namespace.Cesium.Math.toRadians(-34.54), |
| | | roll: 0.0 |
| | | } |
| | | }) |
| | | } else { |
| | | that.btnGroupShow = false |
| | | that.removeSAT() |
| | | that.removeTC() |
| | | global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, that.mouseMoveEvent) |
| | | global.viewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent) |
| | | global.eagleViewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.smallMapCameraEvent) |
| | | tileset.off(global.DC.MouseEventType.CLICK, that.tilesetClick) |
| | | tilesetLayer.removeOverlay(tileset) |
| | | tilesetLayer.show = false |
| | | global.viewer.removeLayer(tilesetLayer) |
| | | tileset = null |
| | | tilesetLayer = null |
| | | global.viewer.removeLayer(streenMlayer) |
| | | streenMlayer = null |
| | | that.createdLayers() |
| | | |
| | | baseMapLayer = global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({ |
| | | url: '/wp/{z}/{x}/{y}.png', |
| | | fileExtension: 'png' |
| | | })) |
| | | |
| | | 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 |
| | | } |
| | | }) |
| | | |
| | | global.eagleViewer.camera.setView({ |
| | | // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州 |
| | | // fromDegrees()方法,将经纬度和高程转换为世界坐标 |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees( |
| | | that.mapCenter[0], |
| | | that.mapCenter[1], |
| | | 1400.0 |
| | | ), |
| | | orientation: { |
| | | // 指向 |
| | | heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0), |
| | | // 视角 |
| | | pitch: global.DC.Namespace.Cesium.Math.toRadians(-90), |
| | | roll: 0.0 |
| | | } |
| | | }) |
| | | // 最小 |
| | | global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 100 |
| | | global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = 1100 |
| | | // 最大 |
| | | global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 400 |
| | | global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = 1400 |
| | | // 视角旋转 |
| | | global.viewer.scene.screenSpaceCameraController.enableTilt = false |
| | | global.eagleViewer.scene.screenSpaceCameraController.enableTilt = false |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .dimension-cut { |
| | | position: fixed; |
| | | top: 100px; |
| | | right: 10px; |
| | | width: auto; |
| | | // height: 40px; |
| | | z-index: 1; |
| | | } |
| | | |
| | | .three-stm { |
| | | position: fixed; |
| | | top: 66px; |
| | | right: 10px; |
| | | z-index: 99; |
| | | } |
| | | |
| | | .sat-stm { |
| | | position: fixed; |
| | | top: 66px; |
| | | right: 75px; |
| | | z-index: 99; |
| | | } |
| | | |
| | | .sat-tc { |
| | | position: fixed; |
| | | top: 66px; |
| | | right: 141px; |
| | | z-index: 99; |
| | | } |
| | | </style> |
| | |
| | | let layerSATtwo = null |
| | | let tcLayer = null |
| | | |
| | | let idlerFlag = true |
| | | let viewerHeight = 950 |
| | | let smallViewerHeight = 1950 |
| | | |
| | | // const wallLayer = null |
| | | |
| | |
| | | // mapCenter: [115.871863, 28.743861, 950.0] |
| | | } |
| | | }, |
| | | props: ['wheelFlag', 'startWheel', 'startSmallWheel'], |
| | | computed: { |
| | | ...mapGetters([ |
| | | 'viewerExist', |
| | |
| | | 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: { |
| | |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees( |
| | | that.mapCenter[0], |
| | | that.mapCenter[1], |
| | | 950.0 |
| | | that.mapCenter[2] |
| | | ), |
| | | orientation: { |
| | | // 指向 |
| | |
| | | that.dimensionValue != undefined && |
| | | that.dimensionValue != '真三维' |
| | | ) { |
| | | const height = Math.ceil( |
| | | global.viewer.camera.positionCartographic.height |
| | | ) |
| | | |
| | | if (height < 575) { |
| | | if (viewerHeight == 500) { |
| | | global.viewer.camera.setView({ |
| | | destination: |
| | | global.DC.Namespace.Cesium.Cartesian3.fromRadians( |
| | | global.viewer.camera.positionCartographic.longitude, |
| | | global.viewer.camera.positionCartographic.latitude, |
| | | 650 |
| | | ), |
| | | 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), |
| | |
| | | roll: 0.0 |
| | | } |
| | | }) |
| | | |
| | | viewerHeight = 650 |
| | | this.$emit('change-wheel', false, 'startWheel') |
| | | return |
| | | } |
| | | |
| | | if (height < 725) { |
| | | if (viewerHeight == 650) { |
| | | global.viewer.camera.setView({ |
| | | destination: |
| | | global.DC.Namespace.Cesium.Cartesian3.fromRadians( |
| | | global.viewer.camera.positionCartographic.longitude, |
| | | global.viewer.camera.positionCartographic.latitude, |
| | | 800 |
| | | ), |
| | | 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), |
| | |
| | | roll: 0.0 |
| | | } |
| | | }) |
| | | |
| | | viewerHeight = 800 |
| | | this.$emit('change-wheel', false, 'startWheel') |
| | | return |
| | | } |
| | | |
| | | if (height < 875) { |
| | | if (viewerHeight == 800) { |
| | | global.viewer.camera.setView({ |
| | | destination: |
| | | global.DC.Namespace.Cesium.Cartesian3.fromRadians( |
| | | global.viewer.camera.positionCartographic.longitude, |
| | | global.viewer.camera.positionCartographic.latitude, |
| | | 950 |
| | | ), |
| | | 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), |
| | |
| | | roll: 0.0 |
| | | } |
| | | }) |
| | | viewerHeight = 950 |
| | | this.$emit('change-wheel', false, 'startWheel') |
| | | } |
| | | } |
| | | } |
| | |
| | | that.dimensionValue != undefined && |
| | | that.dimensionValue != '真三维' |
| | | ) { |
| | | const height = Math.ceil( |
| | | global.viewer.camera.positionCartographic.height |
| | | ) |
| | | |
| | | if (height > 875) { |
| | | if (viewerHeight == 950) { |
| | | global.viewer.camera.setView({ |
| | | destination: |
| | | global.DC.Namespace.Cesium.Cartesian3.fromRadians( |
| | | global.viewer.camera.positionCartographic.longitude, |
| | | global.viewer.camera.positionCartographic.latitude, |
| | | 800 |
| | | ), |
| | | 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), |
| | |
| | | roll: 0.0 |
| | | } |
| | | }) |
| | | |
| | | viewerHeight = 800 |
| | | this.$emit('change-wheel', false, 'startWheel') |
| | | return |
| | | } |
| | | |
| | | if (height > 725) { |
| | | if (viewerHeight == 800) { |
| | | global.viewer.camera.setView({ |
| | | destination: |
| | | global.DC.Namespace.Cesium.Cartesian3.fromRadians( |
| | | global.viewer.camera.positionCartographic.longitude, |
| | | global.viewer.camera.positionCartographic.latitude, |
| | | 650 |
| | | ), |
| | | 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), |
| | |
| | | roll: 0.0 |
| | | } |
| | | }) |
| | | |
| | | viewerHeight = 650 |
| | | this.$emit('change-wheel', false, 'startWheel') |
| | | return |
| | | } |
| | | |
| | | if (height > 575) { |
| | | if (viewerHeight == 650) { |
| | | global.viewer.camera.setView({ |
| | | destination: |
| | | global.DC.Namespace.Cesium.Cartesian3.fromRadians( |
| | | global.viewer.camera.positionCartographic.longitude, |
| | | global.viewer.camera.positionCartographic.latitude, |
| | | 500 |
| | | ), |
| | | 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), |
| | |
| | | roll: 0.0 |
| | | } |
| | | }) |
| | | viewerHeight = 500 |
| | | this.$emit('change-wheel', false, 'startWheel') |
| | | } |
| | | } |
| | | } |
| | | |
| | | global.viewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent) |
| | | // global.eagleViewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.smallMapCameraEvent) |
| | | global.eagleViewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.smallMapCameraEvent) |
| | | } |
| | | } |
| | | } |
| | |
| | | }, |
| | | |
| | | mapCameraEvent () { |
| | | const height = Math.ceil( |
| | | global.viewer.camera.positionCartographic.height |
| | | ) |
| | | |
| | | global.viewer.camera.setView({ |
| | | orientation: { |
| | | // 指向 |
| | |
| | | } |
| | | }) |
| | | |
| | | 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 (this.startWheel == false) return |
| | | |
| | | if (height > 660) { |
| | | if (this.wheelFlag) { // 下 |
| | | if (viewerHeight == 950) { |
| | | global.viewer.camera.setView({ |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians( |
| | | global.viewer.camera.positionCartographic.longitude, |
| | |
| | | roll: 0.0 |
| | | } |
| | | }) |
| | | viewerHeight = 800 |
| | | this.$emit('change-wheel', false, 'startWheel') |
| | | return |
| | | } |
| | | |
| | | if (height > 510) { |
| | | if (viewerHeight == 800) { |
| | | global.viewer.camera.setView({ |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians( |
| | | global.viewer.camera.positionCartographic.longitude, |
| | |
| | | roll: 0.0 |
| | | } |
| | | }) |
| | | viewerHeight = 650 |
| | | this.$emit('change-wheel', false, 'startWheel') |
| | | return |
| | | } |
| | | } else { // 上 |
| | | if (height < 640) { |
| | | |
| | | if (viewerHeight == 650) { |
| | | global.viewer.camera.setView({ |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians( |
| | | global.viewer.camera.positionCartographic.longitude, |
| | |
| | | roll: 0.0 |
| | | } |
| | | }) |
| | | return |
| | | viewerHeight = 500 |
| | | this.$emit('change-wheel', false, 'startWheel') |
| | | } |
| | | |
| | | if (height < 790) { |
| | | } else { // 上 |
| | | if (viewerHeight == 500) { |
| | | global.viewer.camera.setView({ |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians( |
| | | global.viewer.camera.positionCartographic.longitude, |
| | |
| | | roll: 0.0 |
| | | } |
| | | }) |
| | | viewerHeight = 650 |
| | | this.$emit('change-wheel', false, 'startWheel') |
| | | return |
| | | } |
| | | |
| | | if (height < 940) { |
| | | if (viewerHeight == 650) { |
| | | global.viewer.camera.setView({ |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians( |
| | | global.viewer.camera.positionCartographic.longitude, |
| | |
| | | roll: 0.0 |
| | | } |
| | | }) |
| | | viewerHeight = 800 |
| | | this.$emit('change-wheel', false, 'startWheel') |
| | | return |
| | | } |
| | | |
| | | if (viewerHeight == 800) { |
| | | 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 |
| | | } |
| | | }) |
| | | viewerHeight = 950 |
| | | this.$emit('change-wheel', false, 'startWheel') |
| | | } |
| | | } |
| | | }, |
| | | |
| | | smallMapCameraEvent () { |
| | | const height = Math.ceil( |
| | | global.eagleViewer.camera.positionCartographic.height |
| | | ) |
| | | |
| | | global.eagleViewer.camera.setView({ |
| | | orientation: { |
| | | // 指向 |
| | |
| | | } |
| | | }) |
| | | |
| | | 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 (this.startSmallWheel == false) return |
| | | |
| | | if (height > 1660) { |
| | | global.viewer.camera.setView({ |
| | | if (this.wheelFlag) { // 下 |
| | | if (smallViewerHeight == 1950) { |
| | | global.eagleViewer.camera.setView({ |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians( |
| | | global.viewer.camera.positionCartographic.longitude, |
| | | global.viewer.camera.positionCartographic.latitude, |
| | | global.eagleViewer.camera.positionCartographic.longitude, |
| | | global.eagleViewer.camera.positionCartographic.latitude, |
| | | 1800 |
| | | ), |
| | | orientation: { |
| | |
| | | roll: 0.0 |
| | | } |
| | | }) |
| | | smallViewerHeight = 1800 |
| | | this.$emit('change-wheel', false, 'startSmallWheel') |
| | | return |
| | | } |
| | | |
| | | if (height > 1510) { |
| | | global.viewer.camera.setView({ |
| | | if (smallViewerHeight == 1800) { |
| | | global.eagleViewer.camera.setView({ |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians( |
| | | global.viewer.camera.positionCartographic.longitude, |
| | | global.viewer.camera.positionCartographic.latitude, |
| | | global.eagleViewer.camera.positionCartographic.longitude, |
| | | global.eagleViewer.camera.positionCartographic.latitude, |
| | | 1650 |
| | | ), |
| | | orientation: { |
| | |
| | | roll: 0.0 |
| | | } |
| | | }) |
| | | smallViewerHeight = 1650 |
| | | this.$emit('change-wheel', false, 'startSmallWheel') |
| | | return |
| | | } |
| | | } else { // 上 |
| | | if (height < 1640) { |
| | | global.viewer.camera.setView({ |
| | | |
| | | if (smallViewerHeight == 1650) { |
| | | global.eagleViewer.camera.setView({ |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians( |
| | | global.viewer.camera.positionCartographic.longitude, |
| | | global.viewer.camera.positionCartographic.latitude, |
| | | global.eagleViewer.camera.positionCartographic.longitude, |
| | | global.eagleViewer.camera.positionCartographic.latitude, |
| | | 1500 |
| | | ), |
| | | orientation: { |
| | |
| | | roll: 0.0 |
| | | } |
| | | }) |
| | | return |
| | | smallViewerHeight = 1500 |
| | | this.$emit('change-wheel', false, 'startSmallWheel') |
| | | } |
| | | |
| | | if (height < 1790) { |
| | | global.viewer.camera.setView({ |
| | | } else { // 上 |
| | | if (smallViewerHeight == 1500) { |
| | | global.eagleViewer.camera.setView({ |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians( |
| | | global.viewer.camera.positionCartographic.longitude, |
| | | global.viewer.camera.positionCartographic.latitude, |
| | | global.eagleViewer.camera.positionCartographic.longitude, |
| | | global.eagleViewer.camera.positionCartographic.latitude, |
| | | 1650 |
| | | ), |
| | | orientation: { |
| | |
| | | roll: 0.0 |
| | | } |
| | | }) |
| | | smallViewerHeight = 1650 |
| | | this.$emit('change-wheel', false, 'startSmallWheel') |
| | | return |
| | | } |
| | | |
| | | if (height < 1940) { |
| | | global.viewer.camera.setView({ |
| | | if (smallViewerHeight == 1650) { |
| | | global.eagleViewer.camera.setView({ |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians( |
| | | global.viewer.camera.positionCartographic.longitude, |
| | | global.viewer.camera.positionCartographic.latitude, |
| | | global.eagleViewer.camera.positionCartographic.longitude, |
| | | global.eagleViewer.camera.positionCartographic.latitude, |
| | | 1800 |
| | | ), |
| | | orientation: { |
| | |
| | | roll: 0.0 |
| | | } |
| | | }) |
| | | smallViewerHeight = 1800 |
| | | this.$emit('change-wheel', false, 'startSmallWheel') |
| | | return |
| | | } |
| | | |
| | | if (smallViewerHeight == 1800) { |
| | | global.eagleViewer.camera.setView({ |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians( |
| | | global.eagleViewer.camera.positionCartographic.longitude, |
| | | global.eagleViewer.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 |
| | | } |
| | | }) |
| | | smallViewerHeight = 1950 |
| | | this.$emit('change-wheel', false, 'startSmallWheel') |
| | | } |
| | | } |
| | | }, |
| | |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees( |
| | | that.mapCenter[0], |
| | | that.mapCenter[1], |
| | | 950.0 |
| | | that.mapCenter[2] |
| | | ), |
| | | orientation: { |
| | | // 指向 |
| | |
| | | " |
| | | >智慧校区</div> |
| | | |
| | | <dimension /> |
| | | <dimension |
| | | :wheelFlag="wheelFlag" |
| | | :startWheel="startWheel" |
| | | :startSmallWheel="startSmallWheel" |
| | | @change-wheel="changeWheel" |
| | | /> |
| | | |
| | | <calender v-if="calenderShow" /> |
| | | |
| | |
| | | }, |
| | | data () { |
| | | return { |
| | | samllMapFlag: false |
| | | samllMapFlag: false, |
| | | wheelFlag: true, |
| | | startWheel: false, |
| | | startSmallWheel: false |
| | | } |
| | | }, |
| | | watch: { |
| | |
| | | preserveDrawingBuffer: true |
| | | } |
| | | } |
| | | }).setOptions({ |
| | | // showAtmosphere: false, 大气层 |
| | | showMoon: true, // 月亮 |
| | | showSun: true, // 太阳 |
| | | skyBox: { |
| | | show: true |
| | | } |
| | | }) |
| | | // .setOptions({ |
| | | // // showAtmosphere: false, 大气层 |
| | | // showMoon: true, // 月亮 |
| | | // showSun: true, // 太阳 |
| | | // skyBox: { |
| | | // show: true |
| | | // } |
| | | // }) |
| | | |
| | | // const chartLayer = new global.DC.ChartLayer('busLayer').addTo(global.viewer) |
| | | |
| | |
| | | |
| | | // global.viewer.scene.backgroundColor = global.DC.Namespace.Cesium.Color.fromBytes(245, 244, 238) |
| | | |
| | | global.viewer.use(new global.DC.Weather()) |
| | | global.viewer.weather.cloud.enable = true |
| | | global.viewer.weather.cloud.rotateAmount = 0.02 |
| | | // global.viewer.use(new global.DC.Weather()) |
| | | // global.viewer.weather.cloud.enable = true |
| | | // global.viewer.weather.cloud.rotateAmount = 0.02 |
| | | |
| | | that.$store.commit('SET_VIEWEREXIST', true) |
| | | |
| | |
| | | var isLeftTrigger = false |
| | | |
| | | var isRightTrigger = false |
| | | |
| | | handlerL.setInputAction(function (movement) { |
| | | that.startWheel = true |
| | | if (movement > 0) { |
| | | // 向下 |
| | | that.wheelFlag = true |
| | | } else { |
| | | // 向上 |
| | | that.wheelFlag = false |
| | | } |
| | | }, global.DC.Namespace.Cesium.ScreenSpaceEventType.WHEEL) |
| | | |
| | | handlerR.setInputAction(function (movement) { |
| | | that.startSmallWheel = true |
| | | if (that.samllMapFlag) { |
| | | if (movement > 0) { |
| | | // 向下 |
| | | that.wheelFlag = true |
| | | } else { |
| | | // 向上 |
| | | that.wheelFlag = false |
| | | } |
| | | } |
| | | }, global.DC.Namespace.Cesium.ScreenSpaceEventType.WHEEL) |
| | | |
| | | handlerL.setInputAction(function (movement) { |
| | | isLeftTrigger = true |
| | |
| | | // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州 |
| | | // fromDegrees()方法,将经纬度和高程转换为世界坐标 |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees( |
| | | 115.871863, 28.743861, 1400.0 |
| | | 116.35381525, 27.95839468, 1950.0 |
| | | ), |
| | | orientation: { |
| | | // 指向 |
| | |
| | | global.DC.ready(initViewer) |
| | | }, |
| | | methods: { |
| | | changeWheel (val, type) { |
| | | this[type] = val |
| | | }, |
| | | mapClick (e) { |
| | | this.$refs.campusNavRoute.shortcutShow(e) |
| | | this.$refs.campusBuildingSearch.shortcutShow(e) |
| | |
| | | <template> |
| | | <public-box class="tool-sign"> |
| | | <template slot="public-box-header"> |
| | | <div class="title"> |
| | | <img class="icon deblurring" src="/img/icon/tool-sign.png" alt /> |
| | | <span>地图标记</span> |
| | | </div> |
| | | <img |
| | | class="btn-box deblurring" |
| | | @click.stop="addSign" |
| | | src="/img/navicon/add.png" |
| | | alt |
| | | /> |
| | | <img |
| | | class="close deblurring" |
| | | src="/img/navicon/close.png" |
| | | alt |
| | | @click="closeModel" |
| | | /> |
| | | </template> |
| | | <template slot="public-box-content"> |
| | | <div class="list-box" v-loading="loading"> |
| | | <ul v-show="signShow"> |
| | | <li |
| | | v-for="(item, index) in signList" |
| | | :key="index" |
| | | @click="dingw(item)" |
| | | > |
| | | <img src="/img/icon/sign-list.png" alt /> |
| | | {{ item.name }} |
| | | <el-button |
| | | type="danger" |
| | | size="mini" |
| | | icon="el-icon-delete" |
| | | circle |
| | | @click.stop="deleteIcon(item.id)" |
| | | ></el-button> |
| | | </li> |
| | | </ul> |
| | | <div v-show="!signShow" class="no-data"> |
| | | <img src="/img/icon/no-data.png" alt /> |
| | | <div>暂无数据</div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | </public-box> |
| | | <public-box class="tool-sign"> |
| | | <template slot="public-box-header"> |
| | | <div class="title"> |
| | | <img class="icon deblurring" src="/img/icon/tool-sign.png" alt /> |
| | | <span>地图标记</span> |
| | | </div> |
| | | <img class="btn-box deblurring" @click.stop="addSign" src="/img/navicon/add.png" alt /> |
| | | <img class="close deblurring" src="/img/navicon/close.png" alt @click="closeModel" /> |
| | | </template> |
| | | <template slot="public-box-content"> |
| | | <div class="list-box" v-loading="loading"> |
| | | <ul v-show="signShow"> |
| | | <li v-for="(item, index) in signList" :key="index" @click="dingw(item)"> |
| | | <img src="/img/icon/sign-list.png" alt /> |
| | | {{ item.name }} |
| | | <el-button |
| | | type="danger" |
| | | size="mini" |
| | | icon="el-icon-delete" |
| | | circle |
| | | @click.stop="deleteIcon(item.id)" |
| | | ></el-button> |
| | | </li> |
| | | </ul> |
| | | <div v-show="!signShow" class="no-data"> |
| | | <img src="/img/icon/no-data.png" alt /> |
| | | <div>暂无数据</div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | </public-box> |
| | | </template> |
| | | |
| | | <script> |
| | | import { mapGetters } from "vuex"; |
| | | import { getlabel, deletelabel } from "@/api/pc/label"; |
| | | import { mapGetters } from 'vuex' |
| | | import { getlabel, deletelabel } from '@/api/pc/label' |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | loading: true, |
| | | signList: [], |
| | | signShow: true, |
| | | destroyedFlag: true, |
| | | }; |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["addSignList"]), |
| | | }, |
| | | mounted() { |
| | | this.$store.commit("initLabelLayer", global.viewer); |
| | | this.getData(); |
| | | }, |
| | | watch: { |
| | | addSignList() { |
| | | this.getData(); |
| | | }, |
| | | }, |
| | | methods: { |
| | | dingw(item) { |
| | | const that = this; |
| | | // console.log(item); |
| | | // this.$store.dispatch("mapFlyTo", { |
| | | // lntLat: [item.jd, item.wd, 120], //114.04020791, 27.62934732 |
| | | // heading: 0, |
| | | // pitch: -90, |
| | | // roll: 0, |
| | | // noOpen: true, |
| | | // mviewer: that.viewer, |
| | | // }); |
| | | global.viewer.camera.setView({ |
| | | // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州 |
| | | // fromDegrees()方法,将经纬度和高程转换为世界坐标 |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees( |
| | | item.jd, |
| | | item.wd, |
| | | 400.0 |
| | | ), |
| | | orientation: { |
| | | // 指向 |
| | | heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0), |
| | | // 视角 |
| | | pitch: global.DC.Namespace.Cesium.Math.toRadians(-90), |
| | | roll: 0.0, |
| | | }, |
| | | }); |
| | | }, |
| | | deleteIcon(id) { |
| | | const that = this; |
| | | deletelabel(id).then((res) => { |
| | | console.log(res); |
| | | if (res.data.code == 200) { |
| | | that.$message({ |
| | | message: "删除标签成功", |
| | | type: "success", |
| | | }); |
| | | } else { |
| | | that.$message({ |
| | | message: "删除标签失败", |
| | | type: "warning", |
| | | }); |
| | | data () { |
| | | return { |
| | | loading: true, |
| | | signList: [], |
| | | signShow: true, |
| | | destroyedFlag: true |
| | | } |
| | | that.getData(); |
| | | }); |
| | | }, |
| | | getData() { |
| | | const that = this; |
| | | that.loading = true; |
| | | let oks = setTimeout(() => { |
| | | that.loading = false; |
| | | that.signShow = false; |
| | | }, 5000); |
| | | getlabel().then((res) => { |
| | | clearTimeout(oks); |
| | | console.log(res); |
| | | const data = res.data.data.records; |
| | | that.signList = data; |
| | | that.signList.length > 0 |
| | | ? (that.signShow = true) |
| | | : (that.signShow = false); |
| | | that.loading = false; |
| | | // that.$store.commit("clearLabelLayerIcon"); |
| | | that.$store.dispatch("addLabelLayerIcon", { |
| | | list: data, |
| | | clear: true, |
| | | }); |
| | | }); |
| | | computed: { |
| | | ...mapGetters(['addSignList']) |
| | | }, |
| | | moveMessage(e, b) { |
| | | if (b == "") { |
| | | global.viewer.tooltip.enable = false; |
| | | } else { |
| | | global.viewer.tooltip.enable = true; |
| | | global.viewer.tooltip.showAt(e.windowPosition, b); |
| | | } |
| | | mounted () { |
| | | this.$store.commit('initLabelLayer', global.viewer) |
| | | this.getData() |
| | | }, |
| | | |
| | | addSign() { |
| | | var that = this; |
| | | this.$store.commit("set_closeMapClick", true); |
| | | // console.log("开始", "see"); |
| | | global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, (e) => |
| | | that.moveMessage(e, "点击确认标注位置") |
| | | ); |
| | | |
| | | global.viewer.once(global.DC.MouseEventType.CLICK, (e) => { |
| | | if (that.destroyedFlag == false) return; |
| | | |
| | | global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, (e) => |
| | | that.moveMessage(e, "") |
| | | ); |
| | | |
| | | // eslint-disable-next-line no-unused-vars |
| | | new global.DC.DivForms(global.viewer, { |
| | | domId: "AddTagBox", |
| | | position: [ |
| | | global.DC.Transform.transformWGS84ToCartesian( |
| | | new global.DC.Position( |
| | | Number(e.wgs84SurfacePosition.lng), |
| | | Number(e.wgs84SurfacePosition.lat), |
| | | Number(e.wgs84SurfacePosition.alt) |
| | | ) |
| | | ), |
| | | ], |
| | | }); |
| | | |
| | | that.$store.commit("SET_ADDTAGPOSITION", e.wgs84SurfacePosition); |
| | | that.$store.commit("SET_ADDTAGPOPUP", true); |
| | | }); |
| | | watch: { |
| | | addSignList () { |
| | | this.getData() |
| | | } |
| | | }, |
| | | methods: { |
| | | dingw (item) { |
| | | // console.log(item); |
| | | // this.$store.dispatch("mapFlyTo", { |
| | | // lntLat: [item.jd, item.wd, 120], //114.04020791, 27.62934732 |
| | | // heading: 0, |
| | | // pitch: -90, |
| | | // roll: 0, |
| | | // noOpen: true, |
| | | // mviewer: that.viewer, |
| | | // }); |
| | | global.viewer.camera.setView({ |
| | | // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州 |
| | | // fromDegrees()方法,将经纬度和高程转换为世界坐标 |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees( |
| | | item.jd, |
| | | item.wd, |
| | | 950.0 |
| | | ), |
| | | orientation: { |
| | | // 指向 |
| | | heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0), |
| | | // 视角 |
| | | pitch: global.DC.Namespace.Cesium.Math.toRadians(-90), |
| | | roll: 0.0 |
| | | } |
| | | }) |
| | | }, |
| | | deleteIcon (id) { |
| | | const that = this |
| | | deletelabel(id).then((res) => { |
| | | console.log(res) |
| | | if (res.data.code == 200) { |
| | | that.$message({ |
| | | message: '删除标签成功', |
| | | type: 'success' |
| | | }) |
| | | } else { |
| | | that.$message({ |
| | | message: '删除标签失败', |
| | | type: 'warning' |
| | | }) |
| | | } |
| | | that.getData() |
| | | }) |
| | | }, |
| | | getData () { |
| | | const that = this |
| | | that.loading = true |
| | | const oks = setTimeout(() => { |
| | | that.loading = false |
| | | that.signShow = false |
| | | }, 5000) |
| | | getlabel().then((res) => { |
| | | clearTimeout(oks) |
| | | console.log(res) |
| | | const data = res.data.data.records |
| | | that.signList = data |
| | | that.signList.length > 0 |
| | | ? (that.signShow = true) |
| | | : (that.signShow = false) |
| | | that.loading = false |
| | | // that.$store.commit("clearLabelLayerIcon"); |
| | | that.$store.dispatch('addLabelLayerIcon', { |
| | | list: data, |
| | | clear: true |
| | | }) |
| | | }) |
| | | }, |
| | | moveMessage (e, b) { |
| | | if (b == '') { |
| | | global.viewer.tooltip.enable = false |
| | | } else { |
| | | global.viewer.tooltip.enable = true |
| | | global.viewer.tooltip.showAt(e.windowPosition, b) |
| | | } |
| | | }, |
| | | |
| | | closeModel() { |
| | | this.$store.dispatch("delVisitedViews", this.$route); |
| | | this.$router.push("/pcLayout/default"); |
| | | this.$store.commit("clearLabelLayerIcon"); |
| | | addSign () { |
| | | var that = this |
| | | this.$store.commit('set_closeMapClick', true) |
| | | // console.log("开始", "see"); |
| | | global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, (e) => |
| | | that.moveMessage(e, '点击确认标注位置') |
| | | ) |
| | | |
| | | global.viewer.once(global.DC.MouseEventType.CLICK, (e) => { |
| | | if (that.destroyedFlag == false) return |
| | | |
| | | global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, (e) => |
| | | that.moveMessage(e, '') |
| | | ) |
| | | |
| | | // eslint-disable-next-line no-unused-vars |
| | | var div = new global.DC.DivForms(global.viewer, { |
| | | domId: 'AddTagBox', |
| | | position: [ |
| | | global.DC.Transform.transformWGS84ToCartesian( |
| | | new global.DC.Position( |
| | | Number(e.wgs84SurfacePosition.lng), |
| | | Number(e.wgs84SurfacePosition.lat), |
| | | Number(e.wgs84SurfacePosition.alt) |
| | | ) |
| | | ) |
| | | ] |
| | | }) |
| | | |
| | | that.$store.commit('SET_ADDTAGPOSITION', e.wgs84SurfacePosition) |
| | | that.$store.commit('SET_ADDTAGPOPUP', true) |
| | | }) |
| | | }, |
| | | |
| | | closeModel () { |
| | | this.$store.dispatch('delVisitedViews', this.$route) |
| | | this.$router.push('/pcLayout/default') |
| | | this.$store.commit('clearLabelLayerIcon') |
| | | } |
| | | }, |
| | | }, |
| | | destroyed() { |
| | | var that = this; |
| | | that.destroyedFlag = false; |
| | | if (global.DC) { |
| | | global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, (e) => |
| | | that.moveMessage(e, "") |
| | | ); |
| | | destroyed () { |
| | | var that = this |
| | | that.destroyedFlag = false |
| | | if (global.DC) { |
| | | global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, (e) => |
| | | that.moveMessage(e, '') |
| | | ) |
| | | } |
| | | this.$store.commit('clearLabelLayerIcon') |
| | | } |
| | | this.$store.commit("clearLabelLayerIcon"); |
| | | }, |
| | | }; |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .move { |
| | | cursor: move; |
| | | cursor: move; |
| | | } |
| | | </style> |
| | |
| | | import leftNavsData from './pc/leftNavsData' |
| | | window.labelLayer = null; |
| | | window.divIcon = null; |
| | | window.divIcononces = null; |
| | | window.labelLayer = null |
| | | window.divIcon = null |
| | | window.divIcononces = null |
| | | |
| | | const popupParams = { |
| | | state: { |
| | |
| | | }, |
| | | mutations: { |
| | | ...leftNavsData.mutations, |
| | | SET_POPUPBGURL(state, popupBgUrl) { |
| | | SET_POPUPBGURL (state, popupBgUrl) { |
| | | // console.log(popupBgUrl, "see33333") |
| | | if (!popupBgUrl) { |
| | | return |
| | | } |
| | | state.popupBgUrl = popupBgUrl |
| | | }, |
| | | SET_POPUPQRURL(state, pupupQRUrl) { |
| | | SET_POPUPQRURL (state, pupupQRUrl) { |
| | | state.pupupQRUrl = pupupQRUrl |
| | | }, |
| | | SET_TERMINUS(state, terminus) { |
| | | SET_TERMINUS (state, terminus) { |
| | | state.terminus = terminus |
| | | }, |
| | | SET_STARTINGPOINT(state, startingPoint) { |
| | | SET_STARTINGPOINT (state, startingPoint) { |
| | | state.startingPoint = startingPoint |
| | | }, |
| | | SET_POINTPOSITION(state, pointPosition) { |
| | | SET_POINTPOSITION (state, pointPosition) { |
| | | state.pointPosition = pointPosition |
| | | }, |
| | | SET_STATENAME(state, stateName) { |
| | | SET_STATENAME (state, stateName) { |
| | | state.stateName = stateName |
| | | }, |
| | | SET_SITENAME(state, siteName) { |
| | | SET_SITENAME (state, siteName) { |
| | | state.siteName = siteName |
| | | }, |
| | | SET_TELEPHONE(state, telephone) { |
| | | SET_TELEPHONE (state, telephone) { |
| | | state.telephone = telephone |
| | | }, |
| | | SET_INTRODUCETEXT(state, introduceText) { |
| | | SET_INTRODUCETEXT (state, introduceText) { |
| | | state.introduceText = introduceText |
| | | }, |
| | | SET_PANORAMAURL(state, panoramaUrl) { |
| | | SET_PANORAMAURL (state, panoramaUrl) { |
| | | state.panoramaUrl = panoramaUrl |
| | | }, |
| | | SET_PANORAMAPOPUP(state, panoramaPopup) { |
| | | SET_PANORAMAPOPUP (state, panoramaPopup) { |
| | | state.panoramaPopup = panoramaPopup |
| | | }, |
| | | SET_MONITORURL(state, monitorUrl) { |
| | | SET_MONITORURL (state, monitorUrl) { |
| | | state.monitorUrl = monitorUrl |
| | | }, |
| | | SET_MONITORPOPUP(state, monitorPopup) { |
| | | SET_MONITORPOPUP (state, monitorPopup) { |
| | | state.monitorPopup = monitorPopup |
| | | }, |
| | | SET_DETAILSPOPUP(state, detailsPopup) { |
| | | SET_DETAILSPOPUP (state, detailsPopup) { |
| | | state.detailsPopup = detailsPopup |
| | | }, |
| | | SET_POPUPIMGATLAS(state, popupImgAtlas) { |
| | | SET_POPUPIMGATLAS (state, popupImgAtlas) { |
| | | state.popupImgAtlas = popupImgAtlas |
| | | }, |
| | | SET_TEACHLIST(state, teachList) { |
| | | SET_TEACHLIST (state, teachList) { |
| | | state.teachList = teachList |
| | | }, |
| | | SET_LIVELIST(state, liveList) { |
| | | SET_LIVELIST (state, liveList) { |
| | | state.liveList = liveList |
| | | }, |
| | | |
| | | SET_ADDTAGPOPUP(state, addTagPopup) { |
| | | SET_ADDTAGPOPUP (state, addTagPopup) { |
| | | state.addTagPopup = addTagPopup |
| | | }, |
| | | |
| | | SET_ADDTAGPOSITION(state, addTagPosition) { |
| | | SET_ADDTAGPOSITION (state, addTagPosition) { |
| | | state.addTagPosition = addTagPosition |
| | | }, |
| | | initLabelLayer(state, val) { |
| | | initLabelLayer (state, val) { |
| | | if (!window.labelLayer) { |
| | | window.labelLayer = new global.DC.HtmlLayer('labelLayer') |
| | | val.addLayer(window.labelLayer) |
| | |
| | | state.myviewer = val |
| | | }, |
| | | |
| | | clearLabelLayerIcon(state, val) { |
| | | clearLabelLayerIcon (state, val) { |
| | | if (window.labelLayer) { |
| | | window.labelLayer.clear() |
| | | } |
| | | }, |
| | | openLabelLayer(state, val) { |
| | | openLabelLayer (state, val) { |
| | | // console.log(val, "see") |
| | | if (val.show) { |
| | | state.nowlabelLayerData = val.data |
| | |
| | | state.labelLayerDataShow = false |
| | | } |
| | | }, |
| | | CLEAR_ALL(state, param) { |
| | | CLEAR_ALL (state, param) { |
| | | state.siteName = param |
| | | state.introduceText = param |
| | | state.telephone = param |
| | |
| | | state.teachList = [] |
| | | state.liveList = [] |
| | | }, |
| | | set_closeMapClick(state, val) { |
| | | set_closeMapClick (state, val) { |
| | | state.closeMapClick = val |
| | | } |
| | | }, |
| | | actions: { |
| | | ...leftNavsData.actions, |
| | | openPopups({ |
| | | openPopups ({ |
| | | state, |
| | | commit, |
| | | dispatch |
| | |
| | | viewer: this.viewer |
| | | }) |
| | | }, |
| | | setOurDataInPoput({ |
| | | setOurDataInPoput ({ |
| | | state, |
| | | commit, |
| | | dispatch |
| | |
| | | ]) |
| | | commit('SET_DETAILSPOPUP', true) |
| | | }, |
| | | pcMoveView({ |
| | | pcMoveView ({ |
| | | state, |
| | | commit, |
| | | dispatch |
| | |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees( |
| | | +val.jd, |
| | | +val.wd, |
| | | 400.0 |
| | | 950.0 |
| | | ), |
| | | orientation: { |
| | | // 指向 |
| | |
| | | } |
| | | }) |
| | | }, |
| | | pcFlyView({ |
| | | pcFlyView ({ |
| | | state, |
| | | commit, |
| | | dispatch |
| | | }, val) { |
| | | val.viewer.flyToPosition( |
| | | new global.DC.Position(Number(val.jd), Number(val.wd), Number(300), Number(0), Number(-90), Number(0)), |
| | | function () {}, |
| | | function () { }, |
| | | 2 |
| | | ) |
| | | }, |
| | | addLabelLayerIcon({ |
| | | addLabelLayerIcon ({ |
| | | state, |
| | | commit, |
| | | dispatch |
| | |
| | | // const position = e.position |
| | | const lntLat = [e.overlay._position._lng, e.overlay._position._lat] |
| | | // console.log(position, lntLat, list[i], state.myviewer, "see") |
| | | new global.DC.DivForms(global.viewer, { |
| | | var box = new global.DC.DivForms(global.viewer, { |
| | | domId: 'labelLayerid', |
| | | position: [ |
| | | global.DC.Transform.transformWGS84ToCartesian( |
| | |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees( |
| | | lntLat[0], |
| | | lntLat[1], |
| | | 400.0 |
| | | 950.0 |
| | | ), |
| | | orientation: { |
| | | // 指向 |
| | |
| | | window.labelLayer.addOverlay(window.divIcononces) |
| | | } |
| | | }, |
| | | addLabelLayerIconMobelUse({ |
| | | addLabelLayerIconMobelUse ({ |
| | | state, |
| | | commit, |
| | | dispatch |
| | |
| | | state.addSignList = !state.addSignList |
| | | return |
| | | } |
| | | for (let i in list) { |
| | | for (const i in list) { |
| | | window.divIcon = new global.DC.DivIcon( |
| | | new global.DC.Position( |
| | | Number(list[i].jd), |
| | |
| | | // const position = e.position |
| | | const lntLat = [e.overlay._position._lng, e.overlay._position._lat] |
| | | // console.log(position, lntLat, list[i], state.myviewer, "see") |
| | | new global.DC.DivForms(global.viewer, { |
| | | var box = new global.DC.DivForms(global.viewer, { |
| | | domId: 'labelLayerid', |
| | | position: [ |
| | | global.DC.Transform.transformWGS84ToCartesian( |
| | |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees( |
| | | lntLat[0], |
| | | lntLat[1], |
| | | 400.0 |
| | | 950.0 |
| | | ), |
| | | orientation: { |
| | | // 指向 |
| | |
| | | } |
| | | } |
| | | |
| | | export default popupParams |
| | | export default popupParams |