| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2022-08-18 17:00:30 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2022-09-17 16:21:14 |
| | | * @LastEditTime: 2022-09-19 18:19:53 |
| | | * @FilePath: \srs-police-affairs\src\components\map\index.vue |
| | | * @Description: 公用地图组件 |
| | | * |
| | |
| | | |
| | | var siteEntitylayers = null |
| | | |
| | | let layersObjce = { |
| | | let layersObjcect = { |
| | | housingEstateLayer: null, |
| | | patrolWagonLayer: null, |
| | | handMachineLayer: null, |
| | | monitoringLayer: null, |
| | | panoramaLayer: null |
| | | } |
| | | |
| | | let tilesetLayer = null |
| | | |
| | | let tilesetObject = { |
| | | sdTilesetLayer: null |
| | | } |
| | | |
| | | export default { |
| | |
| | | |
| | | // 图层加入地图 |
| | | |
| | | layersObjce.housingEstateLayer = new global.DC.VectorLayer('housingEstateLayer') |
| | | global.viewer.addLayer(layersObjce.housingEstateLayer) |
| | | layersObjce.patrolWagonLayer = new global.DC.VectorLayer('patrolWagonLayer') |
| | | global.viewer.addLayer(layersObjce.patrolWagonLayer) |
| | | layersObjce.handMachineLayer = new global.DC.VectorLayer('handMachineLayer') |
| | | global.viewer.addLayer(layersObjce.handMachineLayer) |
| | | layersObjce.monitoringLayer = new global.DC.VectorLayer('monitoringLayer') |
| | | global.viewer.addLayer(layersObjce.monitoringLayer) |
| | | layersObjce.panoramaLayer = new global.DC.VectorLayer('panoramaLayer') |
| | | global.viewer.addLayer(layersObjce.panoramaLayer) |
| | | layersObjcect.housingEstateLayer = new global.DC.VectorLayer('housingEstateLayer') |
| | | global.viewer.addLayer(layersObjcect.housingEstateLayer) |
| | | layersObjcect.patrolWagonLayer = new global.DC.VectorLayer('patrolWagonLayer') |
| | | global.viewer.addLayer(layersObjcect.patrolWagonLayer) |
| | | layersObjcect.handMachineLayer = new global.DC.VectorLayer('handMachineLayer') |
| | | global.viewer.addLayer(layersObjcect.handMachineLayer) |
| | | layersObjcect.monitoringLayer = new global.DC.VectorLayer('monitoringLayer') |
| | | global.viewer.addLayer(layersObjcect.monitoringLayer) |
| | | layersObjcect.panoramaLayer = new global.DC.VectorLayer('panoramaLayer') |
| | | global.viewer.addLayer(layersObjcect.panoramaLayer) |
| | | |
| | | // 模型图层添加 |
| | | tilesetLayer = new global.DC.TilesetLayer('tilesetLayer') |
| | | global.viewer.addLayer(tilesetLayer) |
| | | |
| | | // 加载围栏 |
| | | let layer = new global.DC.VectorLayer('layer') |
| | | global.viewer.addLayer(layer) |
| | | |
| | | let wall = new global.DC.Wall( |
| | | '116.018142,28.688089,100.0; 116.017756,28.684648,100.0; 116.019507,28.677570,100.0; 116.033653,28.675634,100.0; 116.034223,28.681389,100.0; 116.033483,28.687265,100.0; 116.018142,28.688089,100.0' |
| | | ) |
| | | |
| | | wall.setStyle({ |
| | | material: new global.DC.WallTrailMaterialProperty({ |
| | | color: global.DC.Color.BLUE, |
| | | speed: 8 |
| | | }) |
| | | }) |
| | | layer.addOverlay(wall) |
| | | |
| | | |
| | | |
| | |
| | | }) |
| | | ) |
| | | |
| | | let tilesLayer = new global.DC.TilesetLayer('tilesLayer') |
| | | global.viewer.addLayer(tilesLayer) |
| | | let tileset = new global.DC.Tileset( |
| | | '/qx/tileset.json' |
| | | ) |
| | | |
| | | tilesLayer.addOverlay(tileset) |
| | | global.viewer.flyTo(tileset) |
| | | |
| | | |
| | | // 加载顺丰底图 |
| | |
| | | // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州 |
| | | // fromDegrees()方法,将经纬度和高程转换为世界坐标 |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees( |
| | | 117.971, 28.44444, 8000.0 |
| | | 116.027429, 28.681978, 8000.0 |
| | | ), |
| | | orientation: { |
| | | // 指向 |
| | |
| | | |
| | | global.viewer.use(new global.DC.Measure()) |
| | | |
| | | // global.viewer.locationBar.enable = true |
| | | global.viewer.locationBar.enable = true |
| | | // 缩放 |
| | | global.viewer.zoomController.enable = true |
| | | // 比例尺 |
| | |
| | | // }) |
| | | |
| | | |
| | | this.$EventBus.on('mapAddLayer', (params) => { |
| | | this.$EventBus.$on('mapAddLayer', (params) => { |
| | | that.mapAddLayer(params.layerName, params.type) |
| | | }) |
| | | |
| | | this.$EventBus.on('mapRemoveLayer', (params) => { |
| | | this.$EventBus.$on('mapRemoveLayer', (params) => { |
| | | that.mapRemoveLayer(params.layerName, params.type) |
| | | }) |
| | | |
| | | this.$EventBus.on('mapClearLayer', (params) => { |
| | | this.$EventBus.$on('mapClearLayer', (params) => { |
| | | that.mapClearLayer(params.layerName, params.type) |
| | | }) |
| | | |
| | | this.$EventBus.on('layerPointAdd', (params) => { |
| | | this.$EventBus.$on('layerPointAdd', (params) => { |
| | | // eslint-disable-next-line no-unused-vars |
| | | that.layerPointAdd(params.layerName, params.type, params.params, params.incident = (e) => { }) |
| | | }) |
| | | |
| | | this.$EventBus.on('layerShow', (params) => { |
| | | this.$EventBus.$on('layerPolygonAdd', (params) => { |
| | | that.layerPolygonAdd(params.layerName, params.positions, params.material) |
| | | }) |
| | | |
| | | this.$EventBus.$on('layerShow', (params) => { |
| | | that.layerShow(params.layerName, params.flag) |
| | | }) |
| | | |
| | | this.$EventBus.on('flyToPosition', (params) => { |
| | | this.$EventBus.$on('flyToPosition', (params) => { |
| | | that.flyToPosition(params.siteJd, params.siteWd, params.siteGd = 0, params.siteHeading = 0, params.sitePitch = -90, params.siteRoll = 0, params.time = 3) |
| | | }) |
| | | |
| | | |
| | | this.$EventBus.$on('addMxTileset', (params) => { |
| | | // eslint-disable-next-line no-unused-vars |
| | | that.addMxTileset(params.titlesetName, params.titlesetUrl, params.incident = (e) => { }) |
| | | }) |
| | | |
| | | this.$EventBus.$on('removeMxTileset', (params) => { |
| | | // eslint-disable-next-line no-unused-vars |
| | | that.removeMxTileset(params.titlesetName, params.incident = (e) => { }) |
| | | }) |
| | | }, |
| | | |
| | |
| | | */ |
| | | mapAddLayer (layerName, type) { |
| | | if (type == 'VectorLayer') { |
| | | layersObjce[layerName] = new global.DC.VectorLayer('layerName') |
| | | global.viewer.addLayer(layersObjce[layerName]) |
| | | if (!layersObjcect[layerName]) layersObjcect[layerName] = null |
| | | layersObjcect[layerName] = new global.DC.VectorLayer('layerName') |
| | | global.viewer.addLayer(layersObjcect[layerName]) |
| | | } |
| | | }, |
| | | |
| | |
| | | */ |
| | | mapRemoveLayer (layerName, type) { |
| | | if (type == 'VectorLayer') { |
| | | layersObjce[layerName].remove() |
| | | layersObjcect[layerName].remove() |
| | | |
| | | layersObjce[layerName] = null |
| | | layersObjcect[layerName] = null |
| | | } |
| | | }, |
| | | |
| | |
| | | */ |
| | | mapClearLayer (layerName, type) { |
| | | if (type == 'VectorLayer') { |
| | | layersObjce[layerName].clear() |
| | | layersObjcect[layerName].clear() |
| | | } |
| | | }, |
| | | |
| | |
| | | }) |
| | | } |
| | | pointElement.attrParams = params |
| | | layersObjce[layerName].addOverlay(pointElement) |
| | | layersObjcect[layerName].addOverlay(pointElement) |
| | | pointElement.on(global.DC.MouseEventType.CLICK, incident) |
| | | }, |
| | | |
| | | /** |
| | | * 图层面添加 |
| | | * @param {*} layerName 图层名称 |
| | | * @param {*} positions 图层位置数据 |
| | | * @param {*} material 颜色 |
| | | */ |
| | | layerPolygonAdd (layerName, positions, material) { |
| | | if (!layersObjcect[layerName] || layersObjcect[layerName] == null) { |
| | | this.mapAddLayer(layerName, 'VectorLayer') |
| | | } |
| | | |
| | | let polygon = new global.DC.Polygon(positions) |
| | | |
| | | polygon.setStyle({ |
| | | material: material, |
| | | extrudedHeight: 0, |
| | | perPositionHeight: true |
| | | }) |
| | | |
| | | layersObjcect[layerName].addOverlay(polygon) |
| | | }, |
| | | |
| | | /** |
| | |
| | | * @param {*} flag 显示隐藏 |
| | | */ |
| | | layerShow (layerName, flag) { |
| | | layersObjce[layerName].show = flag |
| | | layersObjcect[layerName].show = flag |
| | | }, |
| | | |
| | | /** |
| | |
| | | function () { }, |
| | | time |
| | | ) |
| | | } |
| | | }, |
| | | // sdTilesetLayer |
| | | |
| | | /** |
| | | * 添加模型 |
| | | * @param {*} titlesetName 图层名称 |
| | | * @param {*} titlesetUrl 模型地址 |
| | | * @param {*} incident 模型点击事件 |
| | | */ |
| | | addMxTileset (titlesetName, titlesetUrl, incident) { |
| | | if (!tilesetObject[titlesetName]) tilesetObject[titlesetName] = null |
| | | |
| | | tilesetObject[titlesetName] = new global.DC.Tileset(titlesetUrl, { |
| | | luminanceAtZenith: 0.4, |
| | | // cullWithChildrenBounds: false, |
| | | // cullRequestsWhileMoving: false, |
| | | // skipLevelOfDetail: false, |
| | | shadows: global.DC.Namespace.Cesium.ShadowMode.DISABLED |
| | | }) |
| | | |
| | | tilesetObject[titlesetName].setHeight(5) |
| | | |
| | | |
| | | tilesetLayer.addOverlay(tilesetObject[titlesetName]) |
| | | |
| | | global.viewer.flyTo(tilesetObject[titlesetName]) |
| | | |
| | | tilesetObject[titlesetName].on(global.DC.MouseEventType.CLICK, incident) |
| | | }, |
| | | |
| | | /** |
| | | * 删除模型 |
| | | * @param {*} titlesetName 图层名称 |
| | | * @param {*} incident 模型点击事件 |
| | | */ |
| | | removeMxTileset (titlesetName, incident) { |
| | | tilesetObject[titlesetName].off(global.DC.MouseEventType.CLICK, incident) |
| | | tilesetLayer.removeOverlay(tilesetObject[titlesetName]) |
| | | tilesetObject[titlesetName] = null |
| | | }, |
| | | }, |
| | | |
| | | } |