| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2022-08-18 17:00:30 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2022-09-19 18:19:53 |
| | | * @LastEditTime: 2022-09-20 15:05:14 |
| | | * @FilePath: \srs-police-affairs\src\components\map\index.vue |
| | | * @Description: 公用地图组件 |
| | | * |
| | |
| | | } |
| | | }) |
| | | |
| | | // global.viewer.scene.globe.depthTestAgainstTerrain = false |
| | | |
| | | // 去除logo |
| | | let primitiveArr = global.viewer.scene.primitives._primitives |
| | | global.viewer.scene.primitives.remove(primitiveArr[0]) |
| | | |
| | | // global.viewer.scene.globe.depthTestAgainstTerrain = true |
| | | |
| | | // 已声明的图层添加到地图上 |
| | | siteEntitylayers = new global.DC.VectorLayer('siteEntitylayers') |
| | |
| | | }) |
| | | |
| | | 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) |
| | | that.flyToPosition(params.siteJd, params.siteWd, params.siteGd = 2000, params.siteHeading = 0, params.sitePitch = -90, params.siteRoll = 0, params.time = 3) |
| | | }) |
| | | |
| | | |
| | |
| | | * @param {*} url 图标地址 |
| | | */ |
| | | addSiteEntity (item, url) { |
| | | const billboard = new global.DC.Billboard(new global.DC.Position(Number(item.lon), Number(item.lat)), url) |
| | | const billboard = new global.DC.Billboard(new global.DC.Position(Number(item.lng), Number(item.lat)), url) |
| | | billboard.size = [20, 28] |
| | | billboard.attrParams = item |
| | | siteEntitylayers.addOverlay(billboard) |
| | |
| | | mapAddLayer (layerName, type) { |
| | | if (type == 'VectorLayer') { |
| | | if (!layersObjcect[layerName]) layersObjcect[layerName] = null |
| | | layersObjcect[layerName] = new global.DC.VectorLayer('layerName') |
| | | global.viewer.addLayer(layersObjcect[layerName]) |
| | | |
| | | layersObjcect[layerName] = new global.DC.VectorLayer(layerName) |
| | | |
| | | layersObjcect[layerName].addTo(global.viewer) |
| | | } |
| | | }, |
| | | |
| | |
| | | */ |
| | | mapClearLayer (layerName, type) { |
| | | if (type == 'VectorLayer') { |
| | | layersObjcect[layerName].clear() |
| | | if (layersObjcect[layerName] && layersObjcect[layerName] != null) |
| | | layersObjcect[layerName].clear() |
| | | } |
| | | }, |
| | | |
| | |
| | | * @param {*} incident 添加的点位事件 |
| | | */ |
| | | layerPointAdd (layerName, type, params, incident) { |
| | | if (!layersObjcect[layerName] || layersObjcect[layerName] == null) { |
| | | this.mapAddLayer(layerName, 'VectorLayer') |
| | | } |
| | | |
| | | let pointElement |
| | | |
| | | if (type == "billboard") { |
| | | pointElement = new global.DC.Billboard(new global.DC.Position(Number(params.lon), Number(params.lat)), params.url) |
| | | pointElement = new global.DC.Billboard(new global.DC.Position(Number(params.lng), Number(params.lat), Number(params.alt)), params.url) |
| | | |
| | | pointElement.size = [20, 28] |
| | | pointElement.size = [32, 32] |
| | | } else if (type == "label") { |
| | | pointElement = new global.DC.Label(new global.DC.Position(Number(params.lon), Number(params.lat), 0), params.url) |
| | | pointElement = new global.DC.Label(new global.DC.Position(Number(params.lng), Number(params.lat), 0), params.url) |
| | | |
| | | pointElement.setStyle({ |
| | | fillColor: global.DC.Color.CRIMSON, |
| | |
| | | pixelOffset: { x: 0, y: -24 } |
| | | }) |
| | | } |
| | | |
| | | pointElement.attrParams = params |
| | | |
| | | layersObjcect[layerName].addOverlay(pointElement) |
| | | pointElement.on(global.DC.MouseEventType.CLICK, incident) |
| | | }, |
| | |
| | | layerPolygonAdd (layerName, positions, material) { |
| | | if (!layersObjcect[layerName] || layersObjcect[layerName] == null) { |
| | | this.mapAddLayer(layerName, 'VectorLayer') |
| | | |
| | | layersObjcect[layerName].allowDrillPicking = true |
| | | } |
| | | |
| | | let polygon = new global.DC.Polygon(positions) |
| | | |
| | | polygon.setStyle({ |
| | | material: material, |
| | | extrudedHeight: 0, |
| | | perPositionHeight: true |
| | | }) |
| | | |
| | |
| | | * @param {*} incident 模型点击事件 |
| | | */ |
| | | removeMxTileset (titlesetName, incident) { |
| | | tilesetObject[titlesetName].off(global.DC.MouseEventType.CLICK, incident) |
| | | tilesetLayer.removeOverlay(tilesetObject[titlesetName]) |
| | | tilesetObject[titlesetName] = null |
| | | if (tilesetObject[titlesetName] && tilesetObject[titlesetName] != null) { |
| | | tilesetObject[titlesetName].off(global.DC.MouseEventType.CLICK, incident) |
| | | tilesetLayer.removeOverlay(tilesetObject[titlesetName]) |
| | | tilesetObject[titlesetName] = null |
| | | } |
| | | }, |
| | | }, |
| | | |