| src/components/campusNav/index.vue | ●●●●● patch | view | raw | blame | history | |
| src/components/leftNav/index.vue | ●●●●● patch | view | raw | blame | history | |
| src/components/map/components/dimension.vue | ●●●●● patch | view | raw | blame | history | |
| src/components/map/components/mapPopup.vue | ●●●●● patch | view | raw | blame | history | |
| src/components/map/index.vue | ●●●●● patch | view | raw | blame | history | |
| src/main.js | ●●●●● patch | view | raw | blame | history | |
| src/pcviews/specialmap/welcome.vue | ●●●●● patch | view | raw | blame | history |
src/components/campusNav/index.vue
@@ -73,14 +73,21 @@ import { mapGetters } from 'vuex' import { getSearchList } from '@/api/pc/public/search' import axios from 'axios' const CamPusNavLayer = { campusStartLayer: null, campusEndLayer: null, campusRouteLayer: null } export default { name: 'campusNav', data () { return { tabOneFlag: true, tabTwoFlag: false, navigationWay: '步行', routeLayer: null, toNameText: '', comeNameText: '', toNameList: [], @@ -90,8 +97,6 @@ overChouse: false, butChouse: '', startLayer: null, endLayer: null, pathBoxShow: false, pathBoxList: [], @@ -159,11 +164,11 @@ // 若是已经有导航,恢复未点击图标 if (val == 'start') { // 初始化图标图层 if (this.endLayer == null) { this.endLayer = new global.DC.VectorLayer('endLayer') global.viewer.addLayer(this.endLayer) if (CamPusNavLayer.campusEndLayer == null) { CamPusNavLayer.campusEndLayer = new global.DC.VectorLayer('campusEndLayer') global.viewer.addLayer(CamPusNavLayer.campusEndLayer) } else { this.endLayer.clear() CamPusNavLayer.campusEndLayer.clear() } // console.log("baoliuend", "see"); that.$store.commit('SET_STARTINGPOINT', []) @@ -175,14 +180,14 @@ ), '/img/navicon/end.png' ) that.endLayer.addOverlay(endEntity) CamPusNavLayer.campusEndLayer.addOverlay(endEntity) } else if (val == 'end') { // 初始化图标图层 if (this.startLayer == null) { this.startLayer = new global.DC.VectorLayer('startLayer') global.viewer.addLayer(this.startLayer) if (CamPusNavLayer.campusStartLayer == null) { CamPusNavLayer.campusStartLayer = new global.DC.VectorLayer('campusStartLayer') global.viewer.addLayer(CamPusNavLayer.campusStartLayer) } else { this.startLayer.clear() CamPusNavLayer.campusStartLayer.clear() } // console.log("baoliustart", "see"); that.$store.commit('SET_TERMINUS', []) @@ -194,7 +199,7 @@ ), '/img/navicon/start.png' ) that.startLayer.addOverlay(startEntity) CamPusNavLayer.campusStartLayer.addOverlay(startEntity) } } @@ -209,20 +214,20 @@ if (val == 'start') { title = '点击选择起点' // 初始化图标图层 if (this.startLayer == null) { this.startLayer = new global.DC.VectorLayer('startLayer') global.viewer.addLayer(this.startLayer) if (CamPusNavLayer.campusStartLayer == null) { CamPusNavLayer.campusStartLayer = new global.DC.VectorLayer('campusStartLayer') global.viewer.addLayer(CamPusNavLayer.campusStartLayer) } else { this.startLayer.clear() CamPusNavLayer.campusStartLayer.clear() } } else if (val == 'end') { title = '点击选择终点' // 初始化图标图层 if (this.endLayer == null) { this.endLayer = new global.DC.VectorLayer('endLayer') global.viewer.addLayer(this.endLayer) if (CamPusNavLayer.campusEndLayer == null) { CamPusNavLayer.campusEndLayer = new global.DC.VectorLayer('campusEndLayer') global.viewer.addLayer(CamPusNavLayer.campusEndLayer) } else { this.endLayer.clear() CamPusNavLayer.campusEndLayer.clear() } } that.overChouse = false // 开启事件 @@ -248,7 +253,7 @@ ), '/img/navicon/start.png' ) that.startLayer.addOverlay(startEntity) CamPusNavLayer.campusStartLayer.addOverlay(startEntity) } else if (that.butChouse == 'end') { that.comeNameText = '自定义终点' // 传输坐标数据 @@ -262,7 +267,7 @@ ), '/img/navicon/end.png' ) that.endLayer.addOverlay(endEntity) CamPusNavLayer.campusEndLayer.addOverlay(endEntity) } title = '' tooltip.enable = false @@ -290,18 +295,18 @@ this.comeNameText = '' this.comeNameList = [] this.comeNameShow = false if (this.routeLayer != null) { this.routeLayer.clear() if (CamPusNavLayer.campusRouteLayer != null) { CamPusNavLayer.campusRouteLayer.clear() this.isOverRouter = false } // 清除自定义位置 if (this.startLayer != null) { this.startLayer.clear() // this.startLayer = null; if (CamPusNavLayer.campusStartLayer != null) { CamPusNavLayer.campusStartLayer.clear() // CamPusNavLayer.campusStartLayer = null; } if (this.endLayer != null) { this.endLayer.clear() // this.endLayer = null; if (CamPusNavLayer.campusEndLayer != null) { CamPusNavLayer.campusEndLayer.clear() // CamPusNavLayer.campusEndLayer = null; } this.$store.commit('SET_COMENAME', '') this.$store.commit('SET_TERMINUS', null) @@ -319,20 +324,20 @@ startNavigation () { const that = this // 清除自定义位置 if (this.startLayer != null) { this.startLayer.clear() // this.startLayer = null; if (CamPusNavLayer.campusStartLayer != null) { CamPusNavLayer.campusStartLayer.clear() // CamPusNavLayer.campusStartLayer = null; } if (this.endLayer != null) { this.endLayer.clear() // this.endLayer = null; if (CamPusNavLayer.campusEndLayer != null) { CamPusNavLayer.campusEndLayer.clear() // CamPusNavLayer.campusEndLayer = null; } if (this.routeLayer == null) { this.routeLayer = new global.DC.VectorLayer('navigation') global.viewer.addLayer(this.routeLayer) if (CamPusNavLayer.campusRouteLayer == null) { CamPusNavLayer.campusRouteLayer = new global.DC.VectorLayer('campusRouteLayer') global.viewer.addLayer(CamPusNavLayer.campusRouteLayer) } else { this.routeLayer.clear() CamPusNavLayer.campusRouteLayer.clear() } if (this.startingPoint == null) { this.$message('请输入起点!!!') @@ -350,7 +355,7 @@ ), '/img/navicon/start.png' ) this.routeLayer.addOverlay(startEntity) CamPusNavLayer.campusRouteLayer.addOverlay(startEntity) // var end = global.DC.Transform.transformWGS84ToCartesian() const endEntity = new global.DC.Billboard( new global.DC.Position( @@ -360,7 +365,7 @@ ), '/img/navicon/end.png' ) this.routeLayer.addOverlay(endEntity) CamPusNavLayer.campusRouteLayer.addOverlay(endEntity) var routes = '' @@ -429,9 +434,9 @@ }), clampToGround: true }) this.routeLayer.addOverlay(polyline) CamPusNavLayer.campusRouteLayer.addOverlay(polyline) if (this.twoOrThree == '真三维') { global.viewer.flyTo(this.routeLayer) global.viewer.flyTo(CamPusNavLayer.campusRouteLayer) } else { var longitude = null var latitude = null @@ -513,10 +518,10 @@ }), clampToGround: true }) this.routeLayer.addOverlay(polyline) CamPusNavLayer.campusRouteLayer.addOverlay(polyline) if (this.twoOrThree == '真三维') { global.viewer.flyTo(this.routeLayer) global.viewer.flyTo(CamPusNavLayer.campusRouteLayer) } else { var longitude = null var latitude = null @@ -557,8 +562,8 @@ }, clearLayer () { if (this.routeLayer != null) { this.routeLayer.clear() if (CamPusNavLayer.campusRouteLayer != null) { CamPusNavLayer.campusRouteLayer.clear() } }, src/components/leftNav/index.vue
@@ -22,6 +22,18 @@ getTagList } from '@/api/pc/leftNav/index' import { mapGetters } from 'vuex' const LeftNavLayer = { leftTagLayer: null, leftWayLayer: null, leftSceneLayer: null, leftMonitorLayer: null, leftActivityLayer: null, leftAedLayer: null, leftParkLayer: null, leftComeLayer: null } export default { name: 'leftNav', computed: { @@ -39,7 +51,7 @@ img: '/img/leftnav/tag-checked.png', normal: '/img/leftnav/tag.png', checked: '/img/leftnav/tag-checked.png', layer: 'tagLayer' layer: 'leftTagLayer' }, { flag: false, @@ -47,7 +59,7 @@ img: '/img/leftnav/way.png', normal: '/img/leftnav/way.png', checked: '/img/leftnav/way-checked.png', layer: 'wayLayer' layer: 'leftWayLayer' }, { flag: false, @@ -55,7 +67,7 @@ img: '/img/leftnav/scene.png', normal: '/img/leftnav/scene.png', checked: '/img/leftnav/scene-checked.png', layer: 'sceneLayer' layer: 'leftSceneLayer' }, { flag: false, @@ -63,7 +75,7 @@ img: '/img/leftnav/monitor.png', normal: '/img/leftnav/monitor.png', checked: '/img/leftnav/monitor-checked.png', layer: 'monitorLayer' layer: 'leftMonitorLayer' }, // { // flag: false, @@ -71,7 +83,7 @@ // img: '/img/leftnav/activity.png', // normal: '/img/leftnav/activity.png', // checked: '/img/leftnav/activity-checked.png', // layer: 'activityLayer' // layer: 'leftActivityLayer' // }, // { // flag: false, @@ -79,7 +91,7 @@ // img: '/img/leftnav/aed.png', // normal: '/img/leftnav/aed.png', // checked: '/img/leftnav/aed-checked.png', // layer: 'aedLayer' // layer: 'leftAedLayer' // }, { flag: false, @@ -87,7 +99,7 @@ img: '/img/leftnav/park.png', normal: '/img/leftnav/park.png', checked: '/img/leftnav/park-checked.png', layer: 'parkLayer' layer: 'leftParkLayer' }, { flag: false, @@ -95,17 +107,9 @@ img: '/img/leftnav/come.png', normal: '/img/leftnav/come.png', checked: '/img/leftnav/come-checked.png', layer: 'comeLayer' layer: 'leftComeLayer' } ], tagLayer: null, wayLayer: null, sceneLayer: null, monitorLayer: null, activityLayer: null, aedLayer: null, parkLayer: null, comeLayer: null ] } }, created () { @@ -124,8 +128,8 @@ methods: { reself () { const that = this if (this.tagLayer) { this.tagLayer.clear() if (LeftNavLayer.leftTagLayer) { LeftNavLayer.leftTagLayer.clear() } getTagList().then((res) => { res.data.data.forEach((item) => { @@ -153,9 +157,9 @@ item: item }) }) this.tagLayer.addOverlay(divIcon) LeftNavLayer.leftTagLayer.addOverlay(divIcon) if (!this.leftNavData[0].flag) { this.tagLayer.show = false LeftNavLayer.leftTagLayer.show = false } }) }) @@ -192,29 +196,36 @@ item.flag = !item.flag if (item.flag == true) { item.img = item.checked this[item.layer].show = true LeftNavLayer[item.layer].show = true } else { item.img = item.normal this[item.layer].show = false LeftNavLayer[item.layer].show = false } }, initialize () { var that = this global.viewer.scene.globe.depthTestAgainstTerrain = false this.tagLayer = new global.DC.HtmlLayer('tagLayer') global.viewer.addLayer(this.tagLayer) this.wayLayer = new global.DC.HtmlLayer('wayLayer') global.viewer.addLayer(this.wayLayer) this.sceneLayer = new global.DC.HtmlLayer('sceneLayer') global.viewer.addLayer(this.sceneLayer) this.monitorLayer = new global.DC.HtmlLayer('monitorLayer') global.viewer.addLayer(this.monitorLayer) this.aedLayer = new global.DC.VectorLayer('aedLayer') global.viewer.addLayer(this.aedLayer) this.parkLayer = new global.DC.HtmlLayer('parkLayer') global.viewer.addLayer(this.parkLayer) this.comeLayer = new global.DC.VectorLayer('comeLayer') global.viewer.addLayer(this.comeLayer) LeftNavLayer.leftTagLayer = new global.DC.HtmlLayer('leftTagLayer') global.viewer.addLayer(LeftNavLayer.leftTagLayer) LeftNavLayer.leftWayLayer = new global.DC.HtmlLayer('leftWayLayer') global.viewer.addLayer(LeftNavLayer.leftWayLayer) LeftNavLayer.leftSceneLayer = new global.DC.HtmlLayer('leftSceneLayer') global.viewer.addLayer(LeftNavLayer.leftSceneLayer) LeftNavLayer.leftMonitorLayer = new global.DC.HtmlLayer('leftMonitorLayer') global.viewer.addLayer(LeftNavLayer.leftMonitorLayer) LeftNavLayer.leftAedLayer = new global.DC.VectorLayer('leftAedLayer') global.viewer.addLayer(LeftNavLayer.leftAedLayer) LeftNavLayer.leftParkLayer = new global.DC.HtmlLayer('leftParkLayer') global.viewer.addLayer(LeftNavLayer.leftParkLayer) LeftNavLayer.leftComeLayer = new global.DC.VectorLayer('leftComeLayer') global.viewer.addLayer(LeftNavLayer.leftComeLayer) getTagList().then((res) => { res.data.data.forEach((item) => { @@ -243,9 +254,9 @@ item: item }) }) this.tagLayer.addOverlay(divIcon) LeftNavLayer.leftTagLayer.addOverlay(divIcon) }) // this.tagLayer.show = false // LeftNavLayer.leftTagLayer.show = false }) getWayList().then((res) => { @@ -263,9 +274,9 @@ </div> ` ) this.wayLayer.addOverlay(divIcon) LeftNavLayer.leftWayLayer.addOverlay(divIcon) }) this.wayLayer.show = false LeftNavLayer.leftWayLayer.show = false }) getMonitorList().then((res) => { @@ -280,7 +291,7 @@ ` ) divIcon.attrParams = item this.monitorLayer.addOverlay(divIcon) LeftNavLayer.leftMonitorLayer.addOverlay(divIcon) divIcon.on(global.DC.MouseEventType.CLICK, (e) => { global.viewer.flyToPosition( @@ -319,7 +330,7 @@ }) }) this.monitorLayer.show = false LeftNavLayer.leftMonitorLayer.show = false }) getSceneList().then((res) => { @@ -334,7 +345,7 @@ ` ) divIcon.attrParams = item this.sceneLayer.addOverlay(divIcon) LeftNavLayer.leftSceneLayer.addOverlay(divIcon) divIcon.on(global.DC.MouseEventType.CLICK, (e) => { global.viewer.flyToPosition( @@ -376,7 +387,7 @@ }) }) this.sceneLayer.show = false LeftNavLayer.leftSceneLayer.show = false }) getLifeList({ lifetype: 9 }).then((res) => { @@ -393,7 +404,7 @@ font: '14px sans-serif', pixelOffset: { x: 0, y: -24 } }) this.aedLayer.addOverlay(label) LeftNavLayer.leftAedLayer.addOverlay(label) const billboard = new global.DC.Billboard( new global.DC.Position(Number(item.jd), Number(item.wd), 0), @@ -401,9 +412,9 @@ ) billboard.size = [20, 20] this.aedLayer.addOverlay(billboard) LeftNavLayer.leftAedLayer.addOverlay(billboard) }) this.aedLayer.show = false LeftNavLayer.leftAedLayer.show = false }) getLifeList({ lifetype: 11 }).then((res) => { @@ -425,9 +436,9 @@ </div> ` ) this.parkLayer.addOverlay(divIcon) LeftNavLayer.leftParkLayer.addOverlay(divIcon) }) this.parkLayer.show = false LeftNavLayer.leftParkLayer.show = false }) getLifeList({ lifetype: 12 }).then((res) => { @@ -444,7 +455,7 @@ font: '14px sans-serif', pixelOffset: { x: 0, y: -40 } }) that.comeLayer.addOverlay(label) LeftNavLayer.leftComeLayer.addOverlay(label) const billboard = new global.DC.Billboard( new global.DC.Position(Number(item.jd), Number(item.wd), 0), @@ -455,9 +466,9 @@ pixelOffset: { x: 0, y: -16 } }) that.comeLayer.addOverlay(billboard) LeftNavLayer.leftComeLayer.addOverlay(billboard) }) this.comeLayer.show = false LeftNavLayer.leftComeLayer.show = false }) }, openPopups (value) { src/components/map/components/dimension.vue
@@ -12,21 +12,30 @@ 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 const wallLayer = null export default { name: 'dimension', data () { return { dimensionValue: '三 维', // 建筑2.5D地图 newLayer: null, baseLayer: null, // 建筑2.5D面数据 provider: null, wallLayer: null, tileset: null, tilesetLayer: null, titlesetLayerFlag: false, silhouetteBlue: null, wallArr: [ [114.04006133, 27.628038, 100], [114.04020623, 27.62809403, 100], @@ -60,7 +69,6 @@ mapCenter: [115.871863, 28.743861, 400.0] } }, props: ['areaLayer'], computed: { ...mapGetters([ 'viewerExist', @@ -72,6 +80,10 @@ ]) }, created () { select = { overlay: null, color: null } }, watch: { viewerExist: { @@ -80,25 +92,16 @@ if (this.titlesetLayerFlag == false && newCode == true) { var that = this that.tilesetLayer = new global.DC.TilesetLayer('tilesetLayer') global.viewer.addLayer(that.tilesetLayer) that.tileset = new global.DC.Tileset('/mx/tileset.json', { luminanceAtZenith: 0.3, shadows: global.DC.Namespace.Cesium.ShadowMode.DISABLED }) that.tilesetLayer.addOverlay(that.tileset) that.tilesetLayer.show = false that.silhouetteBlue = silhouetteBlue = global.DC.Namespace.Cesium.PostProcessStageLibrary.createEdgeDetectionStage() that.silhouetteBlue.uniforms.color = silhouetteBlue.uniforms.color = global.DC.Namespace.Cesium.Color.fromBytes(9, 162, 40) that.silhouetteBlue.uniforms.length = 0.01 that.silhouetteBlue.selected = [] silhouetteBlue.uniforms.length = 0.01 silhouetteBlue.selected = [] global.viewer.scene.postProcessStages.add( global.DC.Namespace.Cesium.PostProcessStageLibrary.createSilhouetteStage( [that.silhouetteBlue] [silhouetteBlue] ) ) @@ -148,16 +151,6 @@ // }) // ) var highlighted = { feature: undefined, originalColor: new global.DC.Namespace.Cesium.Color() } var selected = { feature: undefined, originalColor: new global.DC.Namespace.Cesium.Color() } const videoLayer = new global.DC.CameraVideoLayer('video-layer').addTo( global.viewer ) @@ -173,176 +166,32 @@ aspectRatio: 1.3, alpha: 0.7 }) videoLayer.addOverlay(cameraVideo) that.tileset.on(global.DC.MouseEventType.CLICK, (e) => { 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) ) ) } }) // that.tileset.on(global.DC.MouseEventType.MOUSE_MOVE, e => { // that.silhouetteBlue.selected = [] // if (global.DC.Namespace.Cesium.defined(highlighted.feature)) { // highlighted.feature.color = highlighted.originalColor // highlighted.feature = undefined // } // if (e.feature !== selected.feature) { // that.silhouetteBlue.selected = [e.feature] // highlighted.feature = e.feature // global.DC.Namespace.Cesium.Color.clone( // e.feature.color, // highlighted.originalColor // ) // e.feature.color = global.DC.Namespace.Cesium.Color.fromBytes(155, 255, 175) // } // }) // var provider = new global.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 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' // ] // }) var provider = new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({ baseMapLayer = global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({ url: '/wp/{z}/{x}/{y}.png', fileExtension: 'png' // minimumLevel: 19 }) })) var baseProvider = new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({ url: '/base/{z}/{x}/{y}.png', fileExtension: 'png' }) // wallLayer = new global.DC.VectorLayer('wallLayer') // global.viewer.addLayer(wallLayer) // that.baseLayer = global.viewer.imageryLayers.addImageryProvider(baseProvider) that.newLayer = global.viewer.imageryLayers.addImageryProvider(provider) that.wallLayer = new global.DC.VectorLayer('wallLayer') // global.viewer.addLayer(that.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 }) }) // that.wallLayer.addOverlay(wall) // 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的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州 @@ -414,98 +263,15 @@ // 视角旋转 global.viewer.scene.screenSpaceCameraController.enableTilt = false 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(',') }) that.createdLayers() 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 ) }) that.areaLayer.addOverlay(polygon) }) that.areaLayer.show = true }) var select = { overlay: undefined, color: undefined } global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, (e) => { if (that.closeMapClick) { return } if (e.overlay != undefined && e.layer.id == 'areaLayer') { if (select.overlay != undefined) { if (e.overlay != select.overlay) { select.overlay.setStyle({ material: select.color, outline: false }) select.overlay = undefined select.color = undefined } } if (select.overlay == undefined) { 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 != undefined) { select.overlay.setStyle({ material: select.color, outline: false }) select.overlay = undefined select.color = undefined } } }) 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 == 'areaLayer') { if (e.overlay != undefined && e.layer.id == 'DefaultAreaLayer') { var rid = e.overlay.attr['楼栋号'] == '8栋' ? '9栋' @@ -761,11 +527,68 @@ } } global.viewer.on(global.DC.SceneEventType.CAMERA_CHANGED, () => { if ( that.dimensionValue != undefined && that.dimensionValue != '真三维' ) { global.viewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent) } } } }, methods: { 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 ) @@ -847,36 +670,156 @@ } }) } }, 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) ) ) } }, methods: { // openPopups(lng, lat, alt) { // var popup = new global.DC.DivForms(global.viewer, { // domId: "divFormsDomBox", // position: [ // global.DC.Transform.transformWGS84ToCartesian( // new global.DC.Position(Number(lng), Number(lat), Number(alt)) // ), // ], // }); // }, dimensionChange () { var that = this that.$store.commit('SET_TWOORTHREE', that.dimensionValue) if (that.dimensionValue == '真三维') { // that.wallLayer.show = false that.areaLayer.show = false global.viewer.imageryLayers.remove(that.newLayer) that.newLayer = null // global.viewer.imageryLayers.remove(that.baseLayer) that.baseLayer = null that.silhouetteBlue.selected = [] that.tilesetLayer.show = true that.$store.commit('SET_TWOORTHREE', that.dimensionValue) if (that.dimensionValue == '真三维') { global.viewer.off(global.DC.MouseEventType.MOUSE_MOVE, that.mouseMoveEvent) global.viewer.off(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent) 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.3, shadows: global.DC.Namespace.Cesium.ShadowMode.DISABLED }) tilesetLayer.addOverlay(tileset) tileset.on(global.DC.MouseEventType.CLICK, that.tilesetClick) tilesetLayer.show = true // 最小 global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 1.0 // 最大 @@ -902,29 +845,20 @@ } }) } else { that.tilesetLayer.show = false global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, that.mouseMoveEvent) global.viewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent) tileset.off(global.DC.MouseEventType.CLICK, that.tilesetClick) tilesetLayer.removeOverlay(tileset) global.viewer.remove(tilesetLayer) tileset = null tilesetLayer = null tilesetLayer.show = false that.createdLayers() that.areaLayer.show = true // var provider = new global.DC.Namespace.Cesium.ArcGisMapServerImageryProvider({ // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/PingXiang25DMapQP/MapServer' // }) var provider = new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({ baseMapLayer = global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({ url: '/wp/{z}/{x}/{y}.png', fileExtension: 'png' }) var baseProvider = new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({ url: '/base/{z}/{x}/{y}.png', fileExtension: 'png' }) // that.baseLayer = global.viewer.imageryLayers.addImageryProvider(baseProvider) that.newLayer = global.viewer.imageryLayers.addImageryProvider(provider) // that.wallLayer.show = true })) global.viewer.camera.setView({ // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州 src/components/map/components/mapPopup.vue
@@ -481,7 +481,6 @@ fullscreen: false, fullScreenUrl: '/img/icon/bigScreen.png', addTagName: '', addTagLayer: null, addIconFromcolumn: [ // 顺序不要随便换 { @@ -1023,11 +1022,6 @@ this.$store.commit('SET_ADDTAGPOPUP', false) // if (this.addTagLayer == null) { // this.addTagLayer = new global.DC.HtmlLayer("addTagLayer"); // global.viewer.addLayer(this.addTagLayer); // } // 2022.3.2对接接口 // 新增标签 const data = { @@ -1056,24 +1050,6 @@ // list: [data], add: true }) // const divIcon = new global.DC.DivIcon( // new global.DC.Position( // Number(that.addTagPosition.lng), // Number(that.addTagPosition.lat), // 0 // ), // ` // <div class="tag-entitys-box"> // <div class="tag-content"> // ${that.addTagName} // </div> // <div class="tag-angle-content"> // <img src="https://map.hit.edu.cn/images/tarrow_xq.png"> // </div> // </div> // ` // ); // this.addTagLayer.addOverlay(divIcon); } }, src/components/map/index.vue
@@ -29,7 +29,7 @@ " >智慧校区</div> <dimension :areaLayer="areaLayer" /> <dimension /> <left-nav ref="leftNav"></left-nav> @@ -66,7 +66,6 @@ }, data () { return { areaLayer: null, samllMapFlag: false } }, @@ -384,8 +383,6 @@ // }) // }) that.createdLayers() that.$refs.leftNav.initialize() // const key = '0f7c1d161d7352116a21aacf0e9f44c1' @@ -398,9 +395,9 @@ // }) // global.viewer.addBaseLayer([vec, cva]) // const areaLayer = new global.DC.VectorLayer('areaLayer') // global.pcLayer.DefaultAreaLayer = new global.DC.VectorLayer('DefaultAreaLayer') // global.viewer.addLayer(areaLayer) // global.viewer.addLayer(global.pcLayer.DefaultAreaLayer) // axios.get('http://59.55.128.156:6080/arcgis/rest/services/xiajiangfhgc/MapServer/4/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 => { @@ -418,7 +415,7 @@ // }) // areaLayer.addOverlay(polygon) // global.pcLayer.DefaultAreaLayer.addOverlay(polygon) // }) // }) @@ -534,14 +531,6 @@ mapClick (e) { this.$refs.campusNavRoute.shortcutShow(e) this.$refs.campusBuildingSearch.shortcutShow(e) }, createdLayers () { const layerGroup = new global.DC.LayerGroup('modelBox') global.viewer.addLayerGroup(layerGroup) this.areaLayer = new global.DC.VectorLayer('areaLayer') layerGroup.addLayer(this.areaLayer) } } } src/main.js
@@ -42,22 +42,14 @@ Vue.component(CollapseTransition.name, CollapseTransition) // 主要样式 global.DC = DC // 将DC提升到全局变量,方便在工程中直接使用 // global.pcLayer = { // areaLayer: null, // // 左侧菜单 // leftTagLayer: null, // leftWayLayer: null, // leftSceneLayer: null, // leftMonitorLayer: null, // leftActivityLayer: null, // leftAedLayer: null, // leftParkLayer: null, // leftComeLayer: null, // // 导航 // campusStartLayer: null, // campusEndLayer: null, // campusRouteLayer: null // } global.pcLayer = { // 左侧菜单 // 导航 // 默认底图 tilesetLayer: null } global.viewer = null // 将viewer提升到全局变量,方便在工程中直接使用 DC.accessToken = 'U2FsdGVkX19E68JwtuCiNYLQg2UETLoPcwbGWsp4SejjwWVGadfsVjxZ4AGTQDzle7IlVcGFE8ZNPxxFr5gOThfeJdsOCWDWe7gJPishuAw=' global.echarts = echarts // 将DC提升到全局变量,方便在工程中直接使用 src/pcviews/specialmap/welcome.vue
@@ -80,6 +80,9 @@ import { getWelcome } from '@/api/pc/public/specialmap' import { mapGetters } from 'vuex' let pathLayer = null let pointLayer = null export default { data () { return { @@ -92,8 +95,6 @@ pathList: [], pointNameList: [], pointList: [], pathLayer: null, pointLayer: null, panoramaUrlOne: '', panoramaUrl: '', audioSource: '', @@ -123,7 +124,6 @@ }, computed: { ...mapGetters([ 'viewer', // 校区内导航的显示关闭 'campusNavFlag', 'orgNavBarFlag', @@ -165,11 +165,11 @@ this.pathList.push(k) }) this.pathLayer = new global.DC.VectorLayer('pathLayer') this.viewer.addLayer(this.pathLayer) pathLayer = new global.DC.VectorLayer('pathLayer') global.viewer.addLayer(pathLayer) this.pointLayer = new global.DC.HtmlLayer('pointLayer') this.viewer.addLayer(this.pointLayer) pointLayer = new global.DC.HtmlLayer('pointLayer') global.viewer.addLayer(pointLayer) this.pathList.forEach((item) => { this.drawPolyline(item) @@ -180,13 +180,13 @@ }) if (this.pointList.length > 0) { this.$store.dispatch('pcMoveView', { viewer: this.viewer, viewer: global.viewer, jd: +this.pointList[0].split(',')[0] - 0.0005, wd: this.pointList[0].split(',')[1] }) } else { this.$store.dispatch('pcMoveView', { viewer: this.viewer, viewer: global.viewer, jd: +this.pathList[0].split(';')[0].split(',')[0] - 0.0005, wd: this.pathList[0].split(';')[0].split(',')[1] }) @@ -208,7 +208,7 @@ clampToGround: true }) this.pathLayer.addOverlay(polyline) pathLayer.addOverlay(polyline) }, drawPoint (item, name) { const divIcon = new global.DC.DivIcon( @@ -224,7 +224,7 @@ </div> ` ) this.pointLayer.addOverlay(divIcon) pointLayer.addOverlay(divIcon) }, audioPlay () { if (this.audioFlag == false) { @@ -243,8 +243,8 @@ } }, closeModel () { this.viewer.removeLayer(this.pathLayer) this.viewer.removeLayer(this.pointLayer) global.viewer.removeLayer(pathLayer) global.viewer.removeLayer(pointLayer) this.audioSynth.cancel() this.audioFlag = false @@ -260,8 +260,8 @@ }, destroyed () { this.audioSynth.cancel() this.viewer.removeLayer(this.pathLayer) this.viewer.removeLayer(this.pointLayer) global.viewer.removeLayer(pathLayer) global.viewer.removeLayer(pointLayer) // console.log("关闭", "see1"); } }