| 
					
				 | 
			
			
				@@ -16,13 +16,13 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	<div class="jt-layer"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		<el-tree :data="treeData"  :default-expanded-keys="expandedKeys" node-key="id" class="tree-line"  :expand-on-click-node="false" ref="treeRef" @check-change="handleCheckChange" @node-click="handleClick"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<el-tree :data="treeData" :default-expanded-keys="expandedKeys" :default-checked-keys="checkedkeys" node-key="id" class="tree-line" ref="treeRef"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			<template #default="{ node, data }"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				<!-- 复选框 --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				<el-checkbox v-if="data.ischeck === '1' && store.userport == 'PC'" v-model="node.checked" :indeterminate="node.indeterminate" :disabled="!!node.disabled" @change="handleCheckBoxChange($event, data, node)"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				</el-checkbox> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				<el-switch  v-else-if="data.ischeck == 1 && store.userport == 'APP'" width="30rem" size="small" v-model="node.checked" @change="handleCheckBoxChange($event, data, node)" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				<span class="custom-tree-node"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				<el-switch v-else-if="data.ischeck == 1 && store.userport == 'APP'" width="30rem" size="small" v-model="node.checked" @change="handleCheckBoxChange($event, data, node)" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				<span class="custom-tree-node" @click="handleClick(data)"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					<!-- 字体、图标 --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					<!-- <span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						<img src="@/assets/images/logo16x16.ico" /> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -55,6 +55,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				treeData: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				inittree: [], //初始化图层数组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				expandedKeys: [], //对应要展开的节点id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				checkedkeys: [] //默认打开节点的id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -142,7 +143,15 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							case "Cesium3DTileset": //加载3DTileset地图服务--实景 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								if (window[_serviceId]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									jt3dLeft._viewer.flyTo(window[_serviceId], { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										offset: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+											heading: Cesium.Math.toRadians(20.0), //方向 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+											pitch: Cesium.Math.toRadians(-90), //倾斜角度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+											range: 1000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							case "Cesium3DTileset_BM": //加载3DTileset地图服务--白膜 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -152,16 +161,82 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 * el-slider 值改变时触发(使用鼠标拖曳时,只在松开鼠标后触发) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 * 地图服务的透明度调整 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			handleSliderChange($event, data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				let _serviceId = "serviceLeft_" + data.layercode + data.layerorder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (data.loadtype === "Cesium3DTileset") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					//设置实景透明度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					jt3dLeft.layer.set3DTileStyle({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						serviceId: _serviceId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						alpha: $event, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} else if (data.loadtype === "CrImageServerLayer") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					let floatLayer = window[_serviceId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					floatLayer.setOpacity($event) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} else if (data.loadtype === "PolygonImageMaterial") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					//设置透明度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					jt3dLeft.layer.setPolygonImageMaterial({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						serviceId: _serviceId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						alpha: $event, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} else if (data.loadtype === "entitiesGltf") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					//设置透明度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					jt3dLeft.layer.setModelStyle({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						serviceId: _serviceId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						alpha: $event, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					jt3dLeft.layer.setLayersStyle({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						serviceId: _serviceId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						alpha: $event, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 * el-checkbox 当绑定值变化时触发的事件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 * @param {Object} checked 复选框状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 * @param {Object} data 对应于节点点击的节点对象 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 * @param {Object} node TreeNode 的 node 属性 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			handleCheckBoxChange(checked, data, node) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				let _node = this.$refs.treeRef.getNode(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (_node.isLeaf) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.setLayerControl(data, checked); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.$refs.treeRef.setChecked(_node, checked); //是否设置子节点,默认为false,利用tree组件渲染后带有的isLeaf(是否为叶子节点)属性,如果为叶子节点就选中。利用tree的API就实现了正确的回显效果	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				//控制子节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.childNodesChange(node, checked); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 * 控制子节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 * @param {Object} node 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 * @param {Object} checked 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			childNodesChange(node, checked) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				let _self = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				node.childNodes.forEach(item => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					_self.setLayerControl(item.data, checked); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					_self.$refs.treeRef.setChecked(item, checked); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					_self.childNodesChange(item, checked); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 * el-tree 当复选框被点击的时候触发 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			 * 控制地图服务的显示及隐藏 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			 * @param {Object} data 传递给 data 属性的数组中该节点所对应的对象 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			 * @param {Object} checked 节点本身是否被选中 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			async handleCheckChange(data, checked) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			async setLayerControl(data, checked) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				console.log('操作', '图层控制') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				let _self = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				let _serviceId = "serviceLeft_" + data.layercode + data.layerorder; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -207,6 +282,8 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					switch (data.loadtype) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						case "GeoJsonPoint": //GeoJsonPoint 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							if (checked) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								data.isinit = '1'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								//设置参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								let _options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									id: _serviceId, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -214,7 +291,6 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								if (parameterset) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									if (parameterset.billboard instanceof Object) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 										let billboard = parameterset.billboard; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 										_options.billboard = billboard; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -226,17 +302,23 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								jt3dLeft.layer.addBillboardByGeoJson(_options, function(serviceId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								jt3dLeft.layer.removeDataSources({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									serviceId: _serviceId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								}).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									data.isinit = '0'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						case "GeoJsonPolyline": //GeoJsonPolyline 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							if (checked) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								data.isinit = '1'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								//设置参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								let _options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									id: _serviceId, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -266,10 +348,12 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									if (parameterset.count) { //重复次数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 										_options.count = parameterset.count; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-									if (parameterset.direction) { //direction=vertical 纵,order='-'(由下到上) , '+"(由上到下) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									if (parameterset 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										.direction) { //direction=vertical 纵,order='-'(由下到上) , '+"(由上到下) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 										_options.direction = parameterset.direction; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-									if (parameterset.order) { //direction=horizontal 横,order='-'(顺时针) , '+'(逆时针) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									if (parameterset 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										.order) { //direction=horizontal 横,order='-'(顺时针) , '+'(逆时针) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 										_options.order = parameterset.order; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -280,11 +364,15 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								jt3dLeft.layer.removeDataSources({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									serviceId: _serviceId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								}).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									data.isinit = '0'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						case "entitiesGltf": //gltf/glb 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							if (checked) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								data.isinit = '1'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								//设置参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								let _options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									id: _serviceId, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -333,11 +421,15 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								jt3dLeft.layer.removeEntity({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									serviceId: _serviceId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								}).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									data.isinit = '0'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						case "PolygonImageMaterial": //图片材质 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							if (checked) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								data.isinit = '1'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								if (parameterset) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									if (parameterset.points) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 										jt3dLeft.layer.addPolygonImageMaterial({ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -357,13 +449,17 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								jt3dLeft.layer.removeEntity({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									serviceId: _serviceId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								}).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									data.isinit = '0'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						case "CrImageServerLayer": //贴地所有地形、模型的规划图、网格地图 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							if (checked) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								data.isinit = '1'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								let floatLayer = new this.jt3dSDK.CrImageServerLayer({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-									viewer: jt3dLeft._viewer, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									viewer: window["viewer"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									url: data.datasource, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									opacity: _opacity, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									show: true 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -373,10 +469,13 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								// window[_serviceId].show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								window[_serviceId].hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								data.isinit = '0'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						case "DEM": //地形服务(DEM) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							if (checked) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								data.isinit = '1'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								//设置参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								let _options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									url: data.datasource, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -386,14 +485,17 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 										_options.terrainExaggeration = parameterset.terrainExaggeration; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								jt3dLeft.layer.addTerrain(_options); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								jt3dLeft.layer.removeTerrain(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								jt3dLeft.layer.removeTerrain().then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									data.isinit = '0'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						case "UrlTemplateImageryProvider": //加载URL模板服务 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							if (checked) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								data.isinit = '1'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								//设置参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								let _options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									id: _serviceId, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -417,24 +519,19 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									//重置图层顺序 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									_self.setLayerNumber(serviceId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-									if (layertype === '标注') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-										var imageryLayers = jt3dLeft._viewer.imageryLayers; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-										imageryLayers.raiseToTop(window[serviceId]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-									} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								let removeLayer = jt3dLeft.layer.removeImageryProvider({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								jt3dLeft.layer.removeImageryProvider({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									serviceId: _serviceId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								removeLayer.then(function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-									console.log('成功移除') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								}).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									data.isinit = '0'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						case "WebMapTileServiceImageryProvider": // WMTS地图服务 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							if (checked) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								data.isinit = '1'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								//设置参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								let _options = { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -455,9 +552,6 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 											if (parameterset.tileMatrixSetID) { //用于WMTS请求的TileMatrixSet的标识符 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 												_options.tileMatrixSetID = parameterset.tileMatrixSetID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-												if (parameterset.tileMatrixLabels) { //TileMatrix中用于WMTS请求的标识符列表,每个TileMatrix级别一个标识符。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-													_options.tileMatrixLabels = parameterset.tileMatrixLabels; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-												} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 												if (parameterset.minimumLevel) { //最小层级 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 													_options.minimumLevel = parameterset.minimumLevel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 												} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -469,10 +563,6 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 													//重置图层顺序 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 													_self.setLayerNumber(serviceId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-													if (layertype === '标注') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-														var imageryLayers = jt3dLeft._viewer.imageryLayers; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-														imageryLayers.raiseToTop(window[serviceId]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-													} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 												}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 											} else { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -489,14 +579,19 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									ElMessage("请检测图层表parameterset字段是否设置layers,style,tileMatrixSetID"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								jt3dLeft.layer.removeImageryProvider({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									serviceId: _serviceId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								}).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									data.isinit = '0'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						case "WebMapServiceImageryProvider": //WMS地图服务 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							if (checked) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								data.isinit = '1'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								//设置参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								let _options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									id: _serviceId, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -519,10 +614,6 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 											//重置图层顺序 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 											_self.setLayerNumber(serviceId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-											if (layertype === '标注') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-												var imageryLayers = jt3dLeft._viewer.imageryLayers; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-												imageryLayers.raiseToTop(window[serviceId]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-											} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 										}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 										ElMessage("请检测图层表parameterset字段是否设置layers"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -530,15 +621,18 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									ElMessage("请检测图层表parameterset字段是否设置layers"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								jt3dLeft.layer.removeImageryProvider({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									serviceId: _serviceId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								}).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									data.isinit = '0'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						case "ArcGisMapServerImageryProvider": // ArcGIS Online和Server的相关服务 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							if (checked) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								data.isinit = '1'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								//设置参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								let _options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									id: _serviceId, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -556,19 +650,19 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									//重置图层顺序 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									_self.setLayerNumber(serviceId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-									if (layertype === '标注') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-										var imageryLayers = jt3dLeft._viewer.imageryLayers; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-										imageryLayers.raiseToTop(window[serviceId]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-									} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								jt3dLeft.layer.removeImageryProvider({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									serviceId: _serviceId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								}).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									data.isinit = '0'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						case "TileMapServiceImageryProvider": // 2.5维度地图 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							if (checked) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								data.isinit = '1'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								//设置参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								let _options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									id: _serviceId, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -588,28 +682,27 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									//重置图层顺序 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									_self.setLayerNumber(serviceId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-									if (layertype === '标注') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-										var imageryLayers = jt3dLeft._viewer.imageryLayers; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-										imageryLayers.raiseToTop(window[serviceId]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-									} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								jt3dLeft.layer.removeImageryProvider({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									serviceId: _serviceId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								}).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									data.isinit = '0'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						case "Cesium3DTileset": //加载3DTileset地图服务--实景 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							let datasource = data.datasource.split("#") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							console.log('datasource', datasource) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							if (checked) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								//加载实景 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								datasource.forEach((res, index) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								data.isinit = '1'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								if (window[_serviceId]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									window[_serviceId].show = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									//设置参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									let _options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-										id: _serviceId + index, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-										url: res, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										id: _serviceId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										url: data.datasource, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									if (parameterset) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 										if (parameterset.height) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -619,43 +712,60 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 											_options.alpha = parameterset.alpha; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 										} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									//加载实景 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									jt3dLeft.layer.addCesium3DTileset(_options, function(serviceId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-										window[_serviceId + index] = window[serviceId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										window[_serviceId].show = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								datasource.forEach((res, index) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-									jt3dLeft.layer.removeScenePrimitives({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-										serviceId: _serviceId + index 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-									}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								if (window[_serviceId]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									//3DTileset数据量比较大,会报很多cesium错误 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									// jt3dLeft.layer.removeScenePrimitives({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									// 	serviceId: _serviceId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									// }).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									// 	data.isinit = '0'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									// }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									window[_serviceId].show = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									data.isinit = '0'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						case "Cesium3DTileset_BM": //加载3DTileset地图服务--白膜 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							if (checked) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								//设置参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								let _options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-									id: _serviceId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-									url: data.datasource, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								if (parameterset) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-									if (parameterset.color) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-										_options.color = parameterset.color; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								data.isinit = '1'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								if (window[_serviceId]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									window[_serviceId].show = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									//设置参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									let _options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										id: _serviceId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										url: data.datasource, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									if (parameterset) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										if (parameterset.color) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+											_options.color = parameterset.color; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								//加载白膜 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								jt3dLeft.layer.addCesium3DTilesetBm(_options, function(serviceId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-									jt3dLeft.layer.set3DTileBMStyle(_options); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									//加载白膜 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									jt3dLeft.layer.addCesium3DTilesetBm(_options, function(serviceId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										window[_serviceId].show = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								jt3dLeft.layer.removeScenePrimitives({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-									serviceId: _serviceId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								if (window[_serviceId]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									// jt3dLeft.layer.removeScenePrimitives({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									// 	serviceId: _serviceId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									// }).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									// 	data.isinit = '0'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									// }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									window[_serviceId].show = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									data.isinit = '0'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						default: 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -664,105 +774,12 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 * el-slider 值改变时触发(使用鼠标拖曳时,只在松开鼠标后触发) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 * 地图服务的透明度调整 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			handleSliderChange($event, data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				let _serviceId = "serviceLeft_" + data.layercode + data.layerorder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if (data.loadtype === "Cesium3DTileset") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					let datasource = data.datasource.split("#") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					datasource.forEach((res, index) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						//设置实景透明度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						jt3d.layer.set3DTileStyle({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							serviceId: _serviceId + index, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							alpha: $event, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} else if (data.loadtype === "CrImageServerLayer") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					let floatLayer = window[_serviceId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					floatLayer.setOpacity($event) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} else if (data.loadtype === "PolygonImageMaterial") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					//设置透明度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					jt3dLeft.layer.setPolygonImageMaterial({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						serviceId: _serviceId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						alpha: $event, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} else if (data.loadtype === "entitiesGltf") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					//设置透明度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					jt3dLeft.layer.setModelStyle({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						serviceId: _serviceId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						alpha: $event, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					jt3dLeft.layer.setLayersStyle({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						serviceId: _serviceId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						alpha: $event, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 * el-checkbox 当绑定值变化时触发的事件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 * @param {Object} checked 复选框状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 * @param {Object} data 对应于节点点击的节点对象 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 * @param {Object} node TreeNode 的 node 属性 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			handleCheckBoxChange(checked, data, node) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				let _node = this.$refs.treeRef.getNode(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if (_node.isLeaf) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					this.$refs.treeRef.setChecked(_node, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						checked); //是否设置子节点,默认为false,利用tree组件渲染后带有的isLeaf(是否为叶子节点)属性,如果为叶子节点就选中。利用tree的API就实现了正确的回显效果	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				//控制子节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				this.childNodesChange(node, checked); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 * 控制子节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 * @param {Object} node 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 * @param {Object} checked 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			childNodesChange(node, checked) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				let _self = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				node.childNodes.forEach(item => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					_self.$refs.treeRef.setChecked(item, checked); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					_self.childNodesChange(item, checked); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 * 初始化复选框选中状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 * @param {Object} datas 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			setNodesChecked(datas) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				let _self = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				datas.forEach((data, index) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					_self.$nextTick(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						var node = _self.$refs.treeRef.getNode(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						//node.isLeaf是否是叶子节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						if (node.isLeaf) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							let checked = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							if (data.isinit === '1') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								checked = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							data.opacity = Number(data.opacity) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							_self.$refs.treeRef.setChecked(node, checked); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					if (data.children != undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						_self.setNodesChecked(data.children); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			 * 设置图层顺序 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			 * @param {Object} options 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			setLayerNumber(serviceId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				// let layerList = jt3dLeft._viewer.imageryLayers._layers 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				var imageryLayers = jt3dLeft._viewer.imageryLayers; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				if (store.markID) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					console.log('标注id', store.markID) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -969,7 +986,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				//获取地图图集id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				let roleId = store.roleId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				atlasLayersSqlWhere = '"roleid"' + " = " + roleId + " " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				atlasLayersSqlWhere = '"roleId"' + " = " + roleId + " " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				//Promise回调 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				function init(data) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -979,15 +996,19 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							if (num < 10) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								res.layerorder = '0' + res.layerorder 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							//显示2级 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							if (res.parentid === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							//透明度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							res.opacity = Number(res.opacity); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							//默认展开 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							if (res.isexpand === '1') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								_this.expandedKeys.push(res.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							//其它级别展开 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							if (res.isExpand === '1') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								_this.expandedKeys.push(res.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							// 复选框默认选中 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							if (res.isinit === '1') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								_this.checkedkeys.push(res.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								_this.setLayerControl(res, true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1007,11 +1028,13 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					//初始图层列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					this.inittree = res.data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					init(res.data).then(item => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						//图层初始化打开状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						_this.setNodesChecked(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						console.log('图层控制树列表', _this.treeData) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						//复选框初始化选中 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						_this.$nextTick(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							_this.$refs.treeRef.setCheckedKeys(_this.checkedkeys, true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1023,32 +1046,36 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <style lang="scss"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	.el-switch--small .el-switch__core .el-switch__action{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.el-switch--small .el-switch__core .el-switch__action { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		width: 12rem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		height: 12rem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	.el-switch--small.is-checked .el-switch__core .el-switch__action{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.el-switch--small.is-checked .el-switch__core .el-switch__action { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		margin-left: calc(-1rem - 12rem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	.el-switch__core .el-switch__action{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		top:0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.el-switch__core .el-switch__action { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		top: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	.el-slider__button{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.el-slider__button { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		width: 20rem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		height: 20rem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	.el-tree-node__content{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.el-tree-node__content { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		height: 26rem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	.el-switch--small .el-switch__core{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.el-switch--small .el-switch__core { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		height: 16rem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	.el-switch--small{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.el-switch--small { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		padding: 0 5rem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	.jt-layer { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		padding-left: 10rem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |