From 2d4e3633a59e69bcf2ce6b3997c8e5b4bd9f02d8 Mon Sep 17 00:00:00 2001
From: guanqb <18720758508@163.com>
Date: Mon, 06 Feb 2023 20:07:50 +0800
Subject: [PATCH] 社区建筑3D高亮动态显示,社区定位问题,点位查询定位播放和树数据样式修改
---
src/components/map/index.vue | 89 +++++++++++++++++++++++++++++++++++---------
1 files changed, 70 insertions(+), 19 deletions(-)
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 4156614..f32d21a 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -81,6 +81,8 @@
sdTilesetLayer: null
}
+let flootEntitysEntites = null
+
import mapPopup from './components/mapPopup.vue'
export default {
@@ -243,10 +245,10 @@
console.log(e, 989999)
})
- let positions = [[117.9514788, 28.4478968, 0], [117.9514698, 28.4478947, 0], [117.9513974, 28.4476981, 0], [117.9515047, 28.4476748, 0], [117.9515289, 28.4476939, 0], [117.9515508, 28.447755, 0], [117.9516278, 28.4477353, 0], [117.9516623, 28.4478497, 0], [117.9514788, 28.4478968, 0]]
+ // let positions = [[117.9514788, 28.4478968, 0], [117.9514698, 28.4478947, 0], [117.9513974, 28.4476981, 0], [117.9515047, 28.4476748, 0], [117.9515289, 28.4476939, 0], [117.9515508, 28.447755, 0], [117.9516278, 28.4477353, 0], [117.9516623, 28.4478497, 0], [117.9514788, 28.4478968, 0]]
// let positions = [[117.951478782, 28.447896798, 0], [117.951469798, 28.447894686, 0], [117.951397357, 28.447698099, 0], [117.951505114, 28.447674695, 0], [117.951485465, 28.447619271, 0], [117.951706955, 28.447558541, 0], [117.951722755, 28.447611995, 0], [117.951834021, 28.447588427, 0], [117.951896863, 28.447789523, 0], [117.951478782, 28.447896798, 0]]
-
+ let positions = [[117.951478782, 28.447896798, 0], [117.951469798, 28.447894686, 0], [117.951397357, 28.447698099, 0], [117.951505114, 28.447674695, 0], [117.951485465, 28.447619271, 0], [117.951706955, 28.447558541, 0], [117.951722755, 28.447611995, 0], [117.951834021, 28.447588427, 0], [117.951896863, 28.447789523, 0], [117.951478782, 28.447896798, 0]]
let MIN_F_H = positions.map(item => {
item[2] = 70
return item
@@ -260,25 +262,29 @@
// 原生Cesium加载多边体
let floorEntitysLayers = new global.DC.Namespace.Cesium.CustomDataSource("floorEntitysLayers")
global.viewer.dataSources.add(floorEntitysLayers)
- let flootEntitysEntites = floorEntitysLayers.entities
+ flootEntitysEntites = floorEntitysLayers.entities
- let floorPositions = positions.reduce((prev, curr, index, arr) => {
- curr.forEach(item => {
- prev.push(item)
- })
- return prev
- }, [])
+ // let floorPositions = positions.reduce((prev, curr, index, arr) => {
+ // curr.forEach(item => {
+ // prev.push(item)
+ // })
+ // return prev
+ // }, [])
- flootEntitysEntites.add({
- polygon: {
- hierarchy: global.DC.Namespace.Cesium.Cartesian3.fromDegreesArrayHeights(floorPositions),
- heightReference: global.DC.Namespace.Cesium.HeightReference.RELATIVE_TO_GROUND,
- extrudedHeightReference: global.DC.Namespace.Cesium.HeightReference.RELATIVE_TO_GROUND,
- height: 70,
- extrudedHeight: 80,
- material: global.DC.Namespace.Cesium.Color.RED.withAlpha(0.5),
- }
- })
+ // flootEntitysEntites.add({
+ // polygon: {
+ // hierarchy: global.DC.Namespace.Cesium.Cartesian3.fromDegreesArrayHeights(floorPositions),
+ // heightReference: global.DC.Namespace.Cesium.HeightReference.RELATIVE_TO_GROUND,
+ // extrudedHeightReference: global.DC.Namespace.Cesium.HeightReference.RELATIVE_TO_GROUND,
+ // height: 70,
+ // extrudedHeight: 80,
+ // material: global.DC.Namespace.Cesium.Color.RED.withAlpha(0.5),
+ // }
+ // })
+
+
+
+
// console.log(floorPositions)
@@ -401,6 +407,14 @@
that.flytoLayer(params.polygonName, params.duration)
})
+ this.$EventBus.$on('showHouse3D', (params) => {
+ that.showHouse3D(params.positions, params.minHeight, params.maxHeight)
+ })
+
+ this.$EventBus.$on('clearHouse3D', () => {
+ that.clearHouse3D()
+ })
+
// 重写定位方法
const homeCenter = [117.99311892441567, 28.46938164123123]
this.$nextTick(() => {
@@ -424,6 +438,7 @@
this.$router.push({ path: '/layout/house', query: { searchName: 'xxx小区' } })
}
},
+
switchImg () {
// 天地图 影像
this.imgtype = 0
@@ -439,6 +454,7 @@
)
this.showImgBtn = false
},
+
switchElec () {
// 天地图 矢量
this.imgtype = 1
@@ -454,6 +470,7 @@
)
this.showImgBtn = false
},
+
/**
* @description: 全屏控制
* @return {*} 无返回值
@@ -486,6 +503,7 @@
this.isFullscreen = true
}
},
+
/**
* 在图层中添加实体(点)
* @param {*} item 图标
@@ -732,6 +750,39 @@
tilesetObject[titlesetName] = null
}
},
+
+ /**
+ * 建筑高亮显示
+ * @param {*} positions 建筑范围坐标
+ * @param {*}
+ */
+ showHouse3D (positions, minHeight, maxHeight) {
+ flootEntitysEntites.removeAll()
+ let housePositions = JSON.parse(positions).coordinates[0]
+
+ let floorPositions = housePositions.reduce((prev, curr) => {
+ curr.forEach(item => {
+ prev.push(item)
+ })
+ return prev
+ }, [])
+
+ flootEntitysEntites.add({
+ polygon: {
+ hierarchy: global.DC.Namespace.Cesium.Cartesian3.fromDegreesArrayHeights(floorPositions),
+ heightReference: global.DC.Namespace.Cesium.HeightReference.RELATIVE_TO_GROUND,
+ extrudedHeightReference: global.DC.Namespace.Cesium.HeightReference.RELATIVE_TO_GROUND,
+ height: minHeight,
+ extrudedHeight: maxHeight,
+ material: global.DC.Namespace.Cesium.Color.RED.withAlpha(0.5),
+ }
+ })
+ },
+
+ // 清除建筑3D
+ clearHouse3D () {
+ flootEntitysEntites.removeAll()
+ },
},
}
--
Gitblit v1.9.3