From 81f54040c2cb65537c6c6e1db8358a39a57dea0d Mon Sep 17 00:00:00 2001
From: mayisheng <admin>
Date: Mon, 15 Aug 2022 16:14:01 +0800
Subject: [PATCH] 1
---
src/pcviews/specialmap/welcome.vue | 97 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 97 insertions(+), 0 deletions(-)
diff --git a/src/pcviews/specialmap/welcome.vue b/src/pcviews/specialmap/welcome.vue
index fa80c6d..1968d5c 100644
--- a/src/pcviews/specialmap/welcome.vue
+++ b/src/pcviews/specialmap/welcome.vue
@@ -73,6 +73,16 @@
</div>
</div>
</div>
+
+ <div v-show="layerList.length > 0" class="layer-manage-container">
+ <div class="header">图层管理</div>
+ <ul class="content">
+ <li v-for="(item, index) in layerList" :key="index">
+ {{item.name}}:
+ <el-switch v-model="item.flag" @change="switchChange(item)"></el-switch>
+ </li>
+ </ul>
+ </div>
</div>
</template>
@@ -82,10 +92,13 @@
let pathLayer = null
let pointLayer = null
+let special = []
export default {
data () {
return {
+ url: '',
+ layerList: [],
time: '',
sponsor: '',
undertake: '',
@@ -134,6 +147,14 @@
this.urlDataName = this.$route.query.name
this.getData()
} else if (newData.query.name != this.urlDataName) {
+ if (special.length > 0) {
+ special.forEach(item => {
+ global.viewer.imageryLayers.remove(
+ item.layer
+ )
+ })
+ }
+ special = []
this.audioSynth.cancel()
global.viewer.removeLayer(pathLayer)
global.viewer.removeLayer(pointLayer)
@@ -155,6 +176,37 @@
])
},
methods: {
+ switchChange (item) {
+ if (item.flag == true) {
+ this.addArcgisLayer(item.url, item.name)
+ } else {
+ this.removeArcgisLayer(item.name)
+ }
+ },
+
+ addArcgisLayer (url, name) {
+ var layer = global.viewer.imageryLayers.addImageryProvider(
+ new global.DC.Namespace.Cesium.ArcGisMapServerImageryProvider({
+ url: url
+ })
+ )
+ special.push({
+ layer,
+ name
+ })
+ },
+
+ removeArcgisLayer (name) {
+ special.forEach((item, index) => {
+ if (item.name == name) {
+ global.viewer.imageryLayers.remove(
+ item.layer
+ )
+ special.splice(index, 1)
+ }
+ })
+ },
+
getData () {
getWelcome({ hdname: this.urlDataName }).then((res) => {
var result = res.data.data
@@ -172,6 +224,17 @@
this.list = result.tpurl.split(',')
this.pointNameList = result.addressname.split(',')
this.pointList = result.address.split(';')
+ this.layerList = []
+
+ if (result.mapname != '' && result.mapname != null && result.mapname != undefined) {
+ var mapname = result.mapname.split(',')
+ var url = result.url.split(',')
+ mapname.forEach((item, index) => {
+ this.layerList.push({ flag: false, name: item, url: url[index] })
+ })
+ this.layerList[0].flag = true
+ this.addArcgisLayer(this.layerList[0].url, this.layerList[0].name)
+ }
var a = result.lx.split(';')
@@ -202,6 +265,7 @@
this.pointList.forEach((item, index) => {
this.drawPoint(item.split(','), this.pointNameList[index])
})
+
if (this.pointList.length > 0) {
this.$store.dispatch('pcMoveView', {
viewer: global.viewer,
@@ -270,6 +334,15 @@
}
},
closeModel () {
+ if (special.length > 0) {
+ special.forEach(item => {
+ global.viewer.imageryLayers.remove(
+ item.layer
+ )
+ })
+ }
+ special = []
+
global.viewer.removeLayer(pathLayer)
global.viewer.removeLayer(pointLayer)
@@ -529,4 +602,28 @@
}
}
}
+
+.layer-manage-container {
+ padding: 0 10px 10px 10px;
+ position: fixed;
+ right: 10px;
+ bottom: 240px;
+ width: 120px;
+ background: rgba(40, 187, 240, 0.7);
+ border-radius: 10px;
+ color: #fff;
+ border: 1px solid #29baf1;
+ box-shadow: 0 0 10px 2px #29baf1;
+
+ .header {
+ line-height: 36px;
+ text-align: center;
+ }
+
+ .content {
+ max-height: calc(180px - 36px);
+ overflow-y: auto;
+ text-align: center;
+ }
+}
</style>
--
Gitblit v1.9.3