|  | @@ -20,26 +20,24 @@
 | 
											
												
													
														|  |  <template>
 |  |  <template>
 | 
											
												
													
														|  |  	<div class="basicLayer" ref="popup">
 |  |  	<div class="basicLayer" ref="popup">
 | 
											
												
													
														|  |  		<div class="borderstyle">
 |  |  		<div class="borderstyle">
 | 
											
												
													
														|  | -			<!-- <div class="angle-border-blue left-top-border"></div> -->
 |  | 
 | 
											
												
													
														|  | -			<!-- <div class="angle-border-blue right-top-border"></div> -->
 |  | 
 | 
											
												
													
														|  |  			<div class="angle-border left-bottom-border"></div>
 |  |  			<div class="angle-border left-bottom-border"></div>
 | 
											
												
													
														|  |  			<div class="angle-border right-bottom-border"></div>
 |  |  			<div class="angle-border right-bottom-border"></div>
 | 
											
												
													
														|  |  			<div class="header">
 |  |  			<div class="header">
 | 
											
												
													
														|  |  				<div style="width: 20rem;"></div>
 |  |  				<div style="width: 20rem;"></div>
 | 
											
												
													
														|  |  				<span>底图</span>
 |  |  				<span>底图</span>
 | 
											
												
													
														|  | -				<i :class="store.userport == 'PC'?'iconfont icon-youjiantou':'iconfont icon-youjiantou'" @click="closebasicLayer" style="font-size: 16rem;" />
 |  | 
 | 
											
												
													
														|  | 
 |  | +				<i :class="store.userport == 'PC'?'iconfont icon-youjiantou':'iconfont icon-youjiantou'" @click="closeBasicLayer" style="font-size: 16rem;" />
 | 
											
												
													
														|  |  			</div>
 |  |  			</div>
 | 
											
												
													
														|  |  			<div class="middle">
 |  |  			<div class="middle">
 | 
											
												
													
														|  | -				<div class="onceLayer" v-for="(item,index) in layerList" :key="index" @click="changeBasicLayer(item.url,item.layerorder,item.imageurl)">
 |  | 
 | 
											
												
													
														|  | 
 |  | +				<div class="onceLayer" v-for="(item,index) in layerList" :key="index" @click="changeBasicLayer(item)">
 | 
											
												
													
														|  |  					<img v-if="item.imageurl" :src="item.imageurl" :class="item.layerorder==selectImg?'selectImg':''" />
 |  |  					<img v-if="item.imageurl" :src="item.imageurl" :class="item.layerorder==selectImg?'selectImg':''" />
 | 
											
												
													
														|  |  					<!-- <span>{{item.title}}</span> -->
 |  |  					<!-- <span>{{item.title}}</span> -->
 | 
											
												
													
														|  |  				</div>
 |  |  				</div>
 | 
											
												
													
														|  |  			</div>
 |  |  			</div>
 | 
											
												
													
														|  |  			<div class="footer">
 |  |  			<div class="footer">
 | 
											
												
													
														|  | -				<el-switch v-model="terrainData.isterrain" @change="changeTerrain" />
 |  | 
 | 
											
												
													
														|  | 
 |  | +				<el-switch v-model="terrain.isTerrain" @change="changeTerrain" />
 | 
											
												
													
														|  |  				<span>显示地形</span>
 |  |  				<span>显示地形</span>
 | 
											
												
													
														|  |  				<span> </span>
 |  |  				<span> </span>
 | 
											
												
													
														|  | -				<el-switch v-model="markData.ismark" @change="changeMark" />
 |  | 
 | 
											
												
													
														|  | 
 |  | +				<el-switch v-model="mark.isMark" @change="changeMark" />
 | 
											
												
													
														|  |  				<span>显示标注</span>
 |  |  				<span>显示标注</span>
 | 
											
												
													
														|  |  			</div>
 |  |  			</div>
 | 
											
												
													
														|  |  			<div class="footers">
 |  |  			<div class="footers">
 | 
											
										
											
												
													
														|  | @@ -61,30 +59,23 @@
 | 
											
												
													
														|  |  				layerID: '', //底图切换唯一ID
 |  |  				layerID: '', //底图切换唯一ID
 | 
											
												
													
														|  |  				layerList: [], //图层列表
 |  |  				layerList: [], //图层列表
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -				baseMapData: {
 |  | 
 | 
											
												
													
														|  | -					url: "https://server.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",
 |  | 
 | 
											
												
													
														|  | -					minimumLevel: 1,
 |  | 
 | 
											
												
													
														|  | -					maximumLevel: 18
 |  | 
 | 
											
												
													
														|  | -				},
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  |  				//地形数据
 |  |  				//地形数据
 | 
											
												
													
														|  | -				terrainData: {
 |  | 
 | 
											
												
													
														|  | -					isterrain: false, //是否切换地形
 |  | 
 | 
											
												
													
														|  | -					terrainUrl: "http://202.102.167.52:16381/crdata/dem", //地形地址
 |  | 
 | 
											
												
													
														|  | -					terrainExaggeration: 1, //地形夸张系数
 |  | 
 | 
											
												
													
														|  | 
 |  | +				terrain: {
 | 
											
												
													
														|  | 
 |  | +					isTerrain: false, //是否切换地形
 | 
											
												
													
														|  | 
 |  | +					terrainData: {}, //地形数据
 | 
											
												
													
														|  |  				},
 |  |  				},
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  				//标注数据
 |  |  				//标注数据
 | 
											
												
													
														|  | -				markData: {
 |  | 
 | 
											
												
													
														|  | -					ismark: false, //是否显示标注
 |  | 
 | 
											
												
													
														|  | -					markId: '', //标注id
 |  | 
 | 
											
												
													
														|  | -					markUrl: "http://202.102.167.52:16381/crdata/mpbz", //标注地址
 |  | 
 | 
											
												
													
														|  | 
 |  | +				mark: {
 | 
											
												
													
														|  | 
 |  | +					isMark: false, //是否显示标注
 | 
											
												
													
														|  | 
 |  | +					markID: '', //标注服务ID
 | 
											
												
													
														|  | 
 |  | +					markData: {}, //地形数据
 | 
											
												
													
														|  |  				}
 |  |  				}
 | 
											
												
													
														|  |  			}
 |  |  			}
 | 
											
												
													
														|  |  		},
 |  |  		},
 | 
											
												
													
														|  |  		methods: {
 |  |  		methods: {
 | 
											
												
													
														|  |  			//关闭模块事件
 |  |  			//关闭模块事件
 | 
											
												
													
														|  | -			closebasicLayer() {
 |  | 
 | 
											
												
													
														|  | 
 |  | +			closeBasicLayer() {
 | 
											
												
													
														|  |  				let style = document.styleSheets[0];
 |  |  				let style = document.styleSheets[0];
 | 
											
												
													
														|  |  				style.insertRule(
 |  |  				style.insertRule(
 | 
											
												
													
														|  |  					"@keyframes move-right {0% {opacity: 1;transform: translateX(-100%)}100% {opacity: 1;transform: translateX(0%)}}",
 |  |  					"@keyframes move-right {0% {opacity: 1;transform: translateX(-100%)}100% {opacity: 1;transform: translateX(0%)}}",
 | 
											
										
											
												
													
														|  | @@ -110,8 +101,8 @@
 | 
											
												
													
														|  |  			 * 切换地形事件
 |  |  			 * 切换地形事件
 | 
											
												
													
														|  |  			 */
 |  |  			 */
 | 
											
												
													
														|  |  			changeTerrain() {
 |  |  			changeTerrain() {
 | 
											
												
													
														|  | -				if (this.terrainData.isterrain) {
 |  | 
 | 
											
												
													
														|  | -					this.addTerrain();
 |  | 
 | 
											
												
													
														|  | 
 |  | +				if (this.terrain.isTerrain) {
 | 
											
												
													
														|  | 
 |  | +					this.$parent.$refs.refLayer.setLayersControl(jt3d, this.terrain.terrainData, true);
 | 
											
												
													
														|  |  				} else {
 |  |  				} else {
 | 
											
												
													
														|  |  					jt3d.layer.removeTerrain();
 |  |  					jt3d.layer.removeTerrain();
 | 
											
												
													
														|  |  				}
 |  |  				}
 | 
											
										
											
												
													
														|  | @@ -121,69 +112,32 @@
 | 
											
												
													
														|  |  			 * 切换标注
 |  |  			 * 切换标注
 | 
											
												
													
														|  |  			 */
 |  |  			 */
 | 
											
												
													
														|  |  			changeMark() {
 |  |  			changeMark() {
 | 
											
												
													
														|  | -				if (this.markData.ismark) {
 |  | 
 | 
											
												
													
														|  | -					this.addMark();
 |  | 
 | 
											
												
													
														|  | 
 |  | +				if (this.mark.isMark) {
 | 
											
												
													
														|  | 
 |  | +					this.$parent.$refs.refLayer.setLayersControl(jt3d, this.mark.markData, true);
 | 
											
												
													
														|  | 
 |  | +					this.mark.markID = this.$parent.$refs.refLayer.mark + "_" + this.mark.markData.layercode + this.mark.markData.layerorder;
 | 
											
												
													
														|  |  				} else {
 |  |  				} else {
 | 
											
												
													
														|  |  					jt3d.layer.removeImageryProvider({
 |  |  					jt3d.layer.removeImageryProvider({
 | 
											
												
													
														|  | -						serviceId: store.markID,
 |  | 
 | 
											
												
													
														|  | 
 |  | +						serviceId: this.mark.markID,
 | 
											
												
													
														|  |  					});
 |  |  					});
 | 
											
												
													
														|  |  				}
 |  |  				}
 | 
											
												
													
														|  |  			},
 |  |  			},
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  			/**
 |  |  			/**
 | 
											
												
													
														|  | -			 * 切换底图事件,接收点击传来的url
 |  | 
 | 
											
												
													
														|  | -			 * @param {Object} url
 |  | 
 | 
											
												
													
														|  | -			 * @param {Object} index
 |  | 
 | 
											
												
													
														|  | -			 * @param {Object} imgurl
 |  | 
 | 
											
												
													
														|  | 
 |  | +			 * 切换底图事件
 | 
											
												
													
														|  | 
 |  | +			 * @param {Object} item
 | 
											
												
													
														|  |  			 */
 |  |  			 */
 | 
											
												
													
														|  | -			changeBasicLayer(url, index, imgurl) {
 |  | 
 | 
											
												
													
														|  | -				if (!imgurl) return
 |  | 
 | 
											
												
													
														|  | -				this.selectImg = index
 |  | 
 | 
											
												
													
														|  | -				let self = this
 |  | 
 | 
											
												
													
														|  | 
 |  | +			changeBasicLayer(item) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +				let _self = this;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +				this.selectImg = item.layerorder;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  				//删除底图后再添加
 |  |  				//删除底图后再添加
 | 
											
												
													
														|  |  				jt3d.layer.removeImageryProvider({
 |  |  				jt3d.layer.removeImageryProvider({
 | 
											
												
													
														|  |  					serviceId: this.layerID,
 |  |  					serviceId: this.layerID,
 | 
											
												
													
														|  |  				}).then(res => {
 |  |  				}).then(res => {
 | 
											
												
													
														|  | -					let options = {
 |  | 
 | 
											
												
													
														|  | -						url: url, //服务地址
 |  | 
 | 
											
												
													
														|  | -						minimumLevel: this.baseMapData.minimumLevel,
 |  | 
 | 
											
												
													
														|  | -						maximumLevel: this.baseMapData.maximumLevel
 |  | 
 | 
											
												
													
														|  | -					};
 |  | 
 | 
											
												
													
														|  | -					if (url.indexOf("map.geoq.cn") != -1) {
 |  | 
 | 
											
												
													
														|  | -						options.CRS = "WGS84";
 |  | 
 | 
											
												
													
														|  | -					}
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -					jt3d.layer.addUrlTemplateImagery(options, function(serviceId) {
 |  | 
 | 
											
												
													
														|  | -						self.layerID = serviceId;
 |  | 
 | 
											
												
													
														|  | -					});
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -					var imageryLayers = window["viewer"].imageryLayers;
 |  | 
 | 
											
												
													
														|  | -					imageryLayers.lowerToBottom(window[self.layerID]);
 |  | 
 | 
											
												
													
														|  | -					imageryLayers.raise(window[self.layerID]);
 |  | 
 | 
											
												
													
														|  | -				})
 |  | 
 | 
											
												
													
														|  | -			},
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -			/**
 |  | 
 | 
											
												
													
														|  | -			 * 添加地形
 |  | 
 | 
											
												
													
														|  | -			 */
 |  | 
 | 
											
												
													
														|  | -			addTerrain() {
 |  | 
 | 
											
												
													
														|  | -				jt3d.layer.addTerrain({
 |  | 
 | 
											
												
													
														|  | -					url: this.terrainData.terrainUrl,
 |  | 
 | 
											
												
													
														|  | -					terrainExaggeration: this.terrainData.terrainExaggeration,
 |  | 
 | 
											
												
													
														|  | -				})
 |  | 
 | 
											
												
													
														|  | -			},
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -			/**
 |  | 
 | 
											
												
													
														|  | -			 * 添加标注
 |  | 
 | 
											
												
													
														|  | -			 */
 |  | 
 | 
											
												
													
														|  | -			addMark() {
 |  | 
 | 
											
												
													
														|  | -				jt3d.layer.addTileMapServiceImagery({
 |  | 
 | 
											
												
													
														|  | -					url: this.markData.markUrl
 |  | 
 | 
											
												
													
														|  | -				}, function(serviceId) {
 |  | 
 | 
											
												
													
														|  | -					store.markID = serviceId;
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -					var imageryLayers = window["viewer"].imageryLayers;
 |  | 
 | 
											
												
													
														|  | -					imageryLayers.raiseToTop(window[store.markID]);
 |  | 
 | 
											
												
													
														|  | 
 |  | +					_self.$parent.$refs.refLayer.setLayersControl(jt3d, item, true);
 | 
											
												
													
														|  | 
 |  | +					_self.layerID = _self.$parent.$refs.refLayer.mark + "_" + item.layercode + item.layerorder;;
 | 
											
												
													
														|  |  				})
 |  |  				})
 | 
											
												
													
														|  |  			},
 |  |  			},
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -210,55 +164,35 @@
 | 
											
												
													
														|  |  						}
 |  |  						}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  						if (item.layertype === '地形') {
 |  |  						if (item.layertype === '地形') {
 | 
											
												
													
														|  | -							_self.terrainData.terrainUrl = item.datasource;
 |  | 
 | 
											
												
													
														|  | -							if (parameterset) {
 |  | 
 | 
											
												
													
														|  | -								if (parameterset.terrainExaggeration) { //地形夸张系数
 |  | 
 | 
											
												
													
														|  | -									_self.terrainData.terrainExaggeration = parameterset
 |  | 
 | 
											
												
													
														|  | -										.terrainExaggeration;
 |  | 
 | 
											
												
													
														|  | -								}
 |  | 
 | 
											
												
													
														|  | -							}
 |  | 
 | 
											
												
													
														|  | 
 |  | +							_self.terrain.terrainData = item;
 | 
											
												
													
														|  |  						}
 |  |  						}
 | 
											
												
													
														|  |  						if (item.layertype === '标注') {
 |  |  						if (item.layertype === '标注') {
 | 
											
												
													
														|  | -							_self.markData.markUrl = item.datasource;
 |  | 
 | 
											
												
													
														|  | 
 |  | +							_self.mark.markData = item;
 | 
											
												
													
														|  |  						}
 |  |  						}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  						if (item.isinit === '1' && item.layertype === '地形') {
 |  |  						if (item.isinit === '1' && item.layertype === '地形') {
 | 
											
												
													
														|  | -							_self.terrainData.isterrain = true;
 |  | 
 | 
											
												
													
														|  | -							_self.addTerrain();
 |  | 
 | 
											
												
													
														|  | 
 |  | +							_self.terrain.isTerrain = true;
 | 
											
												
													
														|  | 
 |  | +							//默认加载的地形
 | 
											
												
													
														|  | 
 |  | +							_self.$parent.$refs.refLayer.setLayersControl(jt3d, item, true);
 | 
											
												
													
														|  |  						} else if (item.isinit === '1' && item.layertype === '标注') {
 |  |  						} else if (item.isinit === '1' && item.layertype === '标注') {
 | 
											
												
													
														|  | -							_self.markData.ismark = true;
 |  | 
 | 
											
												
													
														|  | -							_self.addMark();
 |  | 
 | 
											
												
													
														|  | 
 |  | +							_self.mark.isMark = true;
 | 
											
												
													
														|  | 
 |  | +							_self.mark.markID = _self.$parent.$refs.refLayer.mark + "_" + item.layercode + item.layerorder;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +							//默认加载的标注
 | 
											
												
													
														|  | 
 |  | +							_self.$parent.$refs.refLayer.setLayersControl(jt3d, item, true);
 | 
											
												
													
														|  |  						} else if (item.isinit === '1') {
 |  |  						} else if (item.isinit === '1') {
 | 
											
												
													
														|  |  							_self.selectImg = item.layerorder;
 |  |  							_self.selectImg = item.layerorder;
 | 
											
												
													
														|  | 
 |  | +							_self.layerID = _self.$parent.$refs.refLayer.mark + "_" + item.layercode + item.layerorder;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -							//设置参数
 |  | 
 | 
											
												
													
														|  | -							let options = {
 |  | 
 | 
											
												
													
														|  | -								url: item.datasource, //服务地址
 |  | 
 | 
											
												
													
														|  | -								minimumLevel: _self.baseMapData.minimumLevel,
 |  | 
 | 
											
												
													
														|  | -								maximumLevel: _self.baseMapData.maximumLevel
 |  | 
 | 
											
												
													
														|  | -							};
 |  | 
 | 
											
												
													
														|  | -							if (item.datasource.indexOf("map.geoq.cn") != -1) {
 |  | 
 | 
											
												
													
														|  | -								options.CRS = "WGS84";
 |  | 
 | 
											
												
													
														|  | -							}
 |  | 
 | 
											
												
													
														|  |  							//默认加载的底图
 |  |  							//默认加载的底图
 | 
											
												
													
														|  | -							jt3d.layer.addUrlTemplateImagery(options, function(serviceId) {
 |  | 
 | 
											
												
													
														|  | -								_self.layerID = serviceId;
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -								var imageryLayers = window["viewer"].imageryLayers;
 |  | 
 | 
											
												
													
														|  | -								imageryLayers.lowerToBottom(window[_self.layerID]);
 |  | 
 | 
											
												
													
														|  | -								imageryLayers.raise(window[_self.layerID]);
 |  | 
 | 
											
												
													
														|  | -							});
 |  | 
 | 
											
												
													
														|  | 
 |  | +							_self.$parent.$refs.refLayer.setLayersControl(jt3d, item, true);
 | 
											
												
													
														|  |  						}
 |  |  						}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  						if (item.datasource && item.datasource != '#' && item.layertype != '地形' && item.layertype != '标注') {
 |  |  						if (item.datasource && item.datasource != '#' && item.layertype != '地形' && item.layertype != '标注') {
 | 
											
												
													
														|  |  							if (parameterset) {
 |  |  							if (parameterset) {
 | 
											
												
													
														|  |  								if (parameterset.imgurl) {
 |  |  								if (parameterset.imgurl) {
 | 
											
												
													
														|  | -									_self.layerList.push({
 |  | 
 | 
											
												
													
														|  | -										title: item.layername,
 |  | 
 | 
											
												
													
														|  | -										url: item.datasource,
 |  | 
 | 
											
												
													
														|  | -										imageurl: parameterset.imgurl,
 |  | 
 | 
											
												
													
														|  | -										layerorder: item.layerorder
 |  | 
 | 
											
												
													
														|  | -									})
 |  | 
 | 
											
												
													
														|  | 
 |  | +									item.imageurl = parameterset.imgurl;
 | 
											
												
													
														|  | 
 |  | +									_self.layerList.push(item);
 | 
											
												
													
														|  |  								} else {
 |  |  								} else {
 | 
											
												
													
														|  |  									ElMessage("请检查底图图层表parameterset字段是否设置imgurl");
 |  |  									ElMessage("请检查底图图层表parameterset字段是否设置imgurl");
 | 
											
												
													
														|  |  								}
 |  |  								}
 | 
											
										
											
												
													
														|  | @@ -471,19 +405,7 @@
 | 
											
												
													
														|  |  				height: 30rem;
 |  |  				height: 30rem;
 | 
											
												
													
														|  |  			}
 |  |  			}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -			.left-top-border {
 |  | 
 | 
											
												
													
														|  | -				top: -2rem;
 |  | 
 | 
											
												
													
														|  | -				left: -2rem;
 |  | 
 | 
											
												
													
														|  | -				border-left: 2rem solid #008affdd;
 |  | 
 | 
											
												
													
														|  | -				border-top: 2rem solid #008affdd;
 |  | 
 | 
											
												
													
														|  | -			}
 |  | 
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -			.right-top-border {
 |  | 
 | 
											
												
													
														|  | -				top: -2rem;
 |  | 
 | 
											
												
													
														|  | -				right: -2rem;
 |  | 
 | 
											
												
													
														|  | -				border-right: 2rem solid #008affdd;
 |  | 
 | 
											
												
													
														|  | -				border-top: 2rem solid #008affdd;
 |  | 
 | 
											
												
													
														|  | -			}
 |  | 
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  			.left-bottom-border {
 |  |  			.left-bottom-border {
 | 
											
												
													
														|  |  				bottom: -2rem;
 |  |  				bottom: -2rem;
 |