From d057c8fdb1ed9db6cfcebacb146cd0ffbc1ad7fe Mon Sep 17 00:00:00 2001
From: guanqb <18720758508@163.com>
Date: Tue, 20 Sep 2022 09:29:02 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/srs-police-affairs
---
src/components/map/index.vue | 165 +++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 130 insertions(+), 35 deletions(-)
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 1e66b6e..8a43f82 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -2,7 +2,7 @@
* @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: 公用地图组件
*
@@ -34,12 +34,18 @@
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 {
@@ -187,17 +193,36 @@
// 图层加入地图
- 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)
@@ -219,14 +244,7 @@
})
)
- 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)
// 加载顺丰底图
@@ -242,7 +260,7 @@
// Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
// fromDegrees()方法,将经纬度和高程转换为世界坐标
destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
- 117.971, 28.44444, 8000.0
+ 116.027429, 28.681978, 8000.0
),
orientation: {
// 指向
@@ -257,7 +275,7 @@
global.viewer.use(new global.DC.Measure())
- // global.viewer.locationBar.enable = true
+ global.viewer.locationBar.enable = true
// 缩放
global.viewer.zoomController.enable = true
// 比例尺
@@ -300,29 +318,44 @@
// })
- 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) => { })
})
},
@@ -385,8 +418,9 @@
*/
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])
}
},
@@ -397,9 +431,9 @@
*/
mapRemoveLayer (layerName, type) {
if (type == 'VectorLayer') {
- layersObjce[layerName].remove()
+ layersObjcect[layerName].remove()
- layersObjce[layerName] = null
+ layersObjcect[layerName] = null
}
},
@@ -410,7 +444,7 @@
*/
mapClearLayer (layerName, type) {
if (type == 'VectorLayer') {
- layersObjce[layerName].clear()
+ layersObjcect[layerName].clear()
}
},
@@ -442,8 +476,30 @@
})
}
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)
},
/**
@@ -452,7 +508,7 @@
* @param {*} flag 显示隐藏
*/
layerShow (layerName, flag) {
- layersObjce[layerName].show = flag
+ layersObjcect[layerName].show = flag
},
/**
@@ -478,7 +534,46 @@
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
+ },
},
}
--
Gitblit v1.9.3