From c532f35dff316106802df5c6f67cfb8626d86aca Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Tue, 24 Dec 2024 16:52:39 +0800
Subject: [PATCH] 临川相关调整
---
src/pages/map/components/scomponents/layersControl.vue | 207 +++++++++++++++++++++++++++++++++++----------------
1 files changed, 142 insertions(+), 65 deletions(-)
diff --git a/src/pages/map/components/scomponents/layersControl.vue b/src/pages/map/components/scomponents/layersControl.vue
index b91707d..5e7ac88 100644
--- a/src/pages/map/components/scomponents/layersControl.vue
+++ b/src/pages/map/components/scomponents/layersControl.vue
@@ -2,7 +2,7 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2024-10-31 10:47:29
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-12-03 14:30:57
+ * @LastEditTime: 2024-12-24 16:31:17
* @FilePath: \bigScreen\src\pages\map\components\scomponents\layersControl.vue
* @Description:
*
@@ -55,6 +55,9 @@
let tileLayers = new DC.TilesetLayer('tileLayers')
window.$viewer.addLayer(tileLayers)
+let planToBuild = new DC.HtmlLayer('planToBuild')
+window.$viewer.addLayer(planToBuild)
+
const {
show: showLayerControl
} = defineProps({
@@ -70,7 +73,7 @@
import { getList, getGouQu } from "@/api/space/space"
import { getList as getRiskList } from "@/api/riskSource/riskSource"
import { getPanoramaList } from "@/api/panorama/"
-import yqfw from "@/assets/json/yqfw"
+import yqfw_01 from "@/assets/json/yqfw_01"
// import gsgw from "@/assets/json/gsgw"
// import rqgw from "@/assets/json/rqgw"
import wsgw from "@/assets/json/wsgw"
@@ -116,18 +119,6 @@
url: VITE_APP_BASE + 'mx/tile_02/tileset.json',
label: 'tile_02'
},
- {
- url: VITE_APP_BASE + 'mx/tile_03/tileset.json',
- label: 'tile_03'
- },
- {
- url: VITE_APP_BASE + 'mx/tile_04/tileset.json',
- label: 'tile_04'
- },
- {
- url: VITE_APP_BASE + 'mx/tile_05/tileset.json',
- label: 'tile_05'
- },
],
layerName: 'hgyq'
},
@@ -160,12 +151,12 @@
method: getList,
params: {
type: 1,
- size: 1000
+ size: 1000,
},
backgroundIcon: VITE_APP_BASE + 'img/mapicon/yjc.png',
className: 'yjc-box',
showPanel: false,
- layerName: 'yjc',
+ layerName: 'yjc-yq',
incident: (e) => {
const { attrParams } = e.overlay
// 删除
@@ -192,46 +183,97 @@
addPopLayers[attrParams.id].addOverlay(divIcon)
}
},
+
{
parentId: '3',
id: '3-2',
label: '阀门',
- type: 'layer',
- subType: 'labelPoint',
- method: getList,
- params: {
- type: 2,
- size: 1000
- },
- backgroundIcon: VITE_APP_BASE + 'img/mapicon/ysf.png',
- className: 'ysf-box',
- showPanel: false,
- layerName: 'fm',
- incident: (e) => {
- const { attrParams } = e.overlay
- // 删除
- destroyPop()
- if (!attrParams.firmName) {
- return
- }
- addPopLayers[attrParams.id] = new DC.HtmlLayer(attrParams.id)
- window.$viewer.addLayer(addPopLayers[attrParams.id])
- let iconEl = `<div class="marsBlueGradientPnl">
+ children: [
+ {
+ parentId: '3-2',
+ id: '3-2-1',
+ label: '园区',
+ type: 'layer',
+ subType: 'labelPoint',
+ method: getList,
+ params: {
+ type: 2,
+ size: 1000,
+ category: 1
+ },
+ backgroundIcon: VITE_APP_BASE + 'img/mapicon/ysf.png',
+ className: 'ysf-box',
+ showPanel: false,
+ layerName: 'fm-yq',
+ incident: (e) => {
+ const { attrParams } = e.overlay
+ // 删除
+ destroyPop()
+ if (!attrParams.firmName) {
+ return
+ }
+ addPopLayers[attrParams.id] = new DC.HtmlLayer(attrParams.id)
+ window.$viewer.addLayer(addPopLayers[attrParams.id])
+ let iconEl = `<div class="marsBlueGradientPnl">
<div>企业名称:${attrParams.firmName}</div>
<div>作用:${attrParams.mainFuncName}</div>
</div>`
- let divIcon = new DC.DivIcon(
- new DC.Position(attrParams.lng, attrParams.lat, attrParams.ele || 64),
- `<div class="public-map-popup-two">
+ let divIcon = new DC.DivIcon(
+ new DC.Position(attrParams.lng, attrParams.lat, attrParams.ele || 64),
+ `<div class="public-map-popup-two">
${iconEl}
</div>`
- )
- let incident = () => {
- destroyPop()
+ )
+ let incident = () => {
+ destroyPop()
+ }
+ divIcon.on(DC.MouseEventType.CLICK, incident)
+ addPopLayers[attrParams.id].addOverlay(divIcon)
+ }
+ },
+ {
+ parentId: '3-2',
+ id: '3-2-2',
+ label: '企业',
+ type: 'layer',
+ subType: 'labelPoint',
+ method: getList,
+ params: {
+ type: 2,
+ size: 1000,
+ category: 2
+ },
+ backgroundIcon: VITE_APP_BASE + 'img/mapicon/ysf.png',
+ className: 'ysf-box',
+ showPanel: false,
+ layerName: 'fm-qy',
+ incident: (e) => {
+ const { attrParams } = e.overlay
+ // 删除
+ destroyPop()
+ if (!attrParams.firmName) {
+ return
+ }
+ addPopLayers[attrParams.id] = new DC.HtmlLayer(attrParams.id)
+ window.$viewer.addLayer(addPopLayers[attrParams.id])
+ let iconEl = `<div class="marsBlueGradientPnl">
+ <div>企业名称:${attrParams.firmName}</div>
+ <div>作用:${attrParams.mainFuncName}</div>
+ </div>`
+ let divIcon = new DC.DivIcon(
+ new DC.Position(attrParams.lng, attrParams.lat, attrParams.ele || 64),
+ `<div class="public-map-popup-two">
+ ${iconEl}
+ </div>`
+ )
+ let incident = () => {
+ destroyPop()
+ }
+ divIcon.on(DC.MouseEventType.CLICK, incident)
+ addPopLayers[attrParams.id].addOverlay(divIcon)
+ }
}
- divIcon.on(DC.MouseEventType.CLICK, incident)
- addPopLayers[attrParams.id].addOverlay(divIcon)
- }
+ ]
},
{
@@ -637,7 +679,7 @@
type: 'layer',
subType: 'geojsonWall',
layerName: 'yqfw',
- source: yqfw
+ source: yqfw_01
},
{
@@ -861,7 +903,7 @@
item.source.features.forEach(i => {
let wall = new DC.Wall(
- i.geometry.coordinates[0].map(d => [...d, 125].join(',')).join(';')
+ i.geometry.coordinates[0].map(d => [d[0], d[1], 125].join(',')).join(';')
)
wall.setStyle({
@@ -898,9 +940,34 @@
computeCircle(1.6)
)
- polylineVolume.setStyle({
- material: item.color
- })
+ if (i.properties.RefName.indexOf('拟建') != -1) {
+ polylineVolume.setStyle({
+ material: DC.Color.fromBytes(255, 0, 0, 230)
+ })
+
+ let features = window.$turf.featureCollection(
+ i.geometry.coordinates.map(d => window.$turf.point([d[0], d[1]]))
+ )
+
+ let planCenter = window.$turf.center(features)
+
+ let planDivIcon = new DC.DivIcon(
+ new DC.Position(planCenter.geometry.coordinates[0], planCenter.geometry.coordinates[1], 60.5),
+ `<div class="public-map-popup">
+ <div class="map-name">拟建</div>
+ <div class="map-icon">
+ <img src="${VITE_APP_BASE + 'img/mapicon/nj-ys.png'}">
+ </div>
+ </div>`
+ )
+
+ planToBuild.addOverlay(planDivIcon)
+ } else {
+ polylineVolume.setStyle({
+ material: item.color
+ })
+ }
+
addTileLayers[item.layerName].addOverlay(polylineVolume)
})
} else {
@@ -946,6 +1013,10 @@
window.$viewer && window.$viewer.removeLayer(addTileLayers[item.layerName])
addTileLayers[item.layerName] = null
delete addTileLayers[item.layerName]
+
+ if (item.layerName == 'ysgw' && planToBuild) {
+ planToBuild.clear()
+ }
}
}
}
@@ -1006,9 +1077,9 @@
// 飞到园区范围
const flyToyqfw = () => {
window.$viewer.zoomToPosition(new DC.Position(
- 115.1021,
- 27.2360,
- 5000,
+ 116.2819,
+ 27.9400,
+ 8000,
0,
-45,
0
@@ -1032,10 +1103,8 @@
// 关闭所有选中的,除了倾斜,园区分布,空中全景
const closeAll = () => {
EventBus.emit('restHandleDelChange', `2`)
- EventBus.emit('restHandleDelChange', `3`)
EventBus.emit('restHandleDelChange', `3-1`)
EventBus.emit('restHandleDelChange', `3-2`)
- EventBus.emit('restHandleDelChange', `3-3`)
// EventBus.emit('restHandleDelChange', `3-3-1`)
EventBus.emit('restHandleDelChange', `3-3-2`)
// EventBus.emit('restHandleDelChange', `3-3-3`)
@@ -1046,7 +1115,6 @@
EventBus.emit('restHandleDelChange', `3-7`)
EventBus.emit('restHandleDelChange', `3-8`)
// EventBus.emit('restHandleDelChange', `3-9`)
- EventBus.emit('restHandleDelChange', `4`)
EventBus.emit('restHandleDelChange', `4-1`)
EventBus.emit('restHandleDelChange', `4-2`)
EventBus.emit('restHandleDelChange', `4-9`)
@@ -1069,14 +1137,16 @@
// 销毁
function destroyPop () {
- let arr = Object.keys(addPopLayers)
- if (arr.length > 0) {
- arr.forEach(i => {
- addPopLayers[i] && window.$viewer && window.$viewer.removeLayer(addPopLayers[i])
- addPopLayers[i] = null
- delete addPopLayers[i]
- })
- addPopLayers = {}
+ if (addPopLayers && addPopLayers != null) {
+ let arr = Object.keys(addPopLayers)
+ if (arr.length > 0) {
+ arr.forEach(i => {
+ addPopLayers[i] && window.$viewer && window.$viewer.removeLayer(addPopLayers[i])
+ addPopLayers[i] = null
+ delete addPopLayers[i]
+ })
+ addPopLayers = {}
+ }
}
}
@@ -1101,6 +1171,13 @@
window.$viewer && window.$viewer.removeLayer(tileLayers)
tileLayers = null
}
+
+ if (planToBuild) {
+ planToBuild.remove()
+ window.$viewer && window.$viewer.removeLayer(planToBuild)
+ planToBuild = null
+ }
+
// 弹窗销毁
destroyPop()
addPopLayers = null
--
Gitblit v1.9.3