2 Commits df68c48618 ... 11ad7c6cb3

Author SHA1 Message Date
  DESKTOP-CRQ4N2U\jintian 11ad7c6cb3 Merge branch 'master' of http://218.59.194.82:12990/JTCode/JT-CIM-YanTai_Windows 1 year ago
  DESKTOP-CRQ4N2U\jintian 037b6675de 图层控制,复选两次判断 1 year ago
1 changed files with 111 additions and 99 deletions
  1. 111 99
      src/views/Map3d/components/layer.vue

+ 111 - 99
src/views/Map3d/components/layer.vue

@@ -335,14 +335,17 @@
 
 								if (parameterset) {
 									if (parameterset.points) {
-										jt3d.layer.addPolygonImageMaterial({
-											id: _serviceId,
-											points: parameterset.points,
-											url: data.datasource,
-											alpha: _opacity
-										}, function(serviceId) {
 
-										});
+										if (!window[_serviceId]) {
+											jt3d.layer.addPolygonImageMaterial({
+												id: _serviceId,
+												points: parameterset.points,
+												url: data.datasource,
+												alpha: _opacity
+											}, function(serviceId) {
+
+											});
+										}
 									} else {
 										ElMessage("请检测图层表parameterset字段是否设置points");
 									}
@@ -362,15 +365,17 @@
 							if (checked) {
 								data.isinit = '1';
 
-								let floatLayer = new this.jt3dSDK.CrImageServerLayer({
-									viewer: jt3d._viewer,
-									url: data.datasource,
-									opacity: _opacity,
-									show: true
-								});
-								window[_serviceId] = floatLayer;
-								//添加网格地图
-								// window[_serviceId].show();
+								if (!window[_serviceId]) {
+									let floatLayer = new this.jt3dSDK.CrImageServerLayer({
+										viewer: jt3d._viewer,
+										url: data.datasource,
+										opacity: _opacity,
+										show: true
+									});
+									window[_serviceId] = floatLayer;
+									//添加网格地图
+									// window[_serviceId].show();
+								}
 							} else {
 								window[_serviceId].hide();
 								data.isinit = '0';
@@ -418,21 +423,23 @@
 									}
 								}
 
-								//加载服务
-								jt3d.layer.addUrlTemplateImagery(_options, function(serviceId) {
+								if (!window[_serviceId]) {
+									//加载服务
+									jt3d.layer.addUrlTemplateImagery(_options, function(serviceId) {
 
-									//重置图层顺序
-									_self.setLayerNumber(jt3d, serviceId)
-									if (atlastype === "底图") {
-										var imageryLayers = jt3d._viewer.imageryLayers;
-										imageryLayers.lowerToBottom(window[serviceId]);
-										imageryLayers.raise(window[serviceId]);
-										if (layertype === '标注') {
+										//重置图层顺序
+										_self.setLayerNumber(jt3d, serviceId)
+										if (atlastype === "底图") {
 											var imageryLayers = jt3d._viewer.imageryLayers;
-											imageryLayers.raiseToTop(window[serviceId]);
+											imageryLayers.lowerToBottom(window[serviceId]);
+											imageryLayers.raise(window[serviceId]);
+											if (layertype === '标注') {
+												var imageryLayers = jt3d._viewer.imageryLayers;
+												imageryLayers.raiseToTop(window[serviceId]);
+											}
 										}
-									}
-								});
+									});
+								}
 							} else {
 								jt3d.layer.removeImageryProvider({
 									serviceId: _serviceId
@@ -472,20 +479,22 @@
 													_options.maximumLevel = parameterset.maximumLevel;
 												}
 
-												jt3d.layer.addWebMapTileService(_options, function(serviceId) {
+												if (!window[_serviceId]) {
+													jt3d.layer.addWebMapTileService(_options, function(serviceId) {
 
-													//重置图层顺序
-													_self.setLayerNumber(jt3d, serviceId)
-													if (atlastype === "底图") {
-														var imageryLayers = jt3d._viewer.imageryLayers;
-														imageryLayers.lowerToBottom(window[serviceId]);
-														imageryLayers.raise(window[serviceId]);
-														if (layertype === '标注') {
+														//重置图层顺序
+														_self.setLayerNumber(jt3d, serviceId)
+														if (atlastype === "底图") {
 															var imageryLayers = jt3d._viewer.imageryLayers;
-															imageryLayers.raiseToTop(window[serviceId]);
+															imageryLayers.lowerToBottom(window[serviceId]);
+															imageryLayers.raise(window[serviceId]);
+															if (layertype === '标注') {
+																var imageryLayers = jt3d._viewer.imageryLayers;
+																imageryLayers.raiseToTop(window[serviceId]);
+															}
 														}
-													}
-												});
+													});
+												}
 
 											} else {
 												ElMessage("请检测图层表parameterset字段是否设置tileMatrixSetID");
@@ -520,7 +529,7 @@
 									url: data.datasource,
 									alpha: _opacity
 								}
-								
+
 								if (parameterset) {
 									if (parameterset.layers) { //WMTS请求的层名
 										_options.layers = parameterset.layers;
@@ -532,20 +541,22 @@
 											_options.maximumLevel = parameterset.maximumLevel;
 										}
 
-										jt3d.layer.addWebMapService(_options, function(serviceId) {
+										if (!window[_serviceId]) {
+											jt3d.layer.addWebMapService(_options, function(serviceId) {
 
-											//重置图层顺序
-											_self.setLayerNumber(jt3d, serviceId)
-											if (atlastype === "底图") {
-												var imageryLayers = jt3d._viewer.imageryLayers;
-												imageryLayers.lowerToBottom(window[serviceId]);
-												imageryLayers.raise(window[serviceId]);
-												if (layertype === '标注') {
+												//重置图层顺序
+												_self.setLayerNumber(jt3d, serviceId)
+												if (atlastype === "底图") {
 													var imageryLayers = jt3d._viewer.imageryLayers;
-													imageryLayers.raiseToTop(window[serviceId]);
+													imageryLayers.lowerToBottom(window[serviceId]);
+													imageryLayers.raise(window[serviceId]);
+													if (layertype === '标注') {
+														var imageryLayers = jt3d._viewer.imageryLayers;
+														imageryLayers.raiseToTop(window[serviceId]);
+													}
 												}
-											}
-										});
+											});
+										}
 									} else {
 										ElMessage("请检测图层表parameterset字段是否设置layers");
 									}
@@ -576,21 +587,24 @@
 									}
 								}
 
-								//加载服务
-								jt3d.layer.addArcGisMapServer(_options, function(serviceId) {
+								if (!window[_serviceId]) {
+
+									//加载服务
+									jt3d.layer.addArcGisMapServer(_options, function(serviceId) {
 
-									//重置图层顺序
-									_self.setLayerNumber(jt3d, serviceId)
-									if (atlastype === "底图") {
-										var imageryLayers = jt3d._viewer.imageryLayers;
-										imageryLayers.lowerToBottom(window[serviceId]);
-										imageryLayers.raise(window[serviceId]);
-										if (layertype === '标注') {
+										//重置图层顺序
+										_self.setLayerNumber(jt3d, serviceId)
+										if (atlastype === "底图") {
 											var imageryLayers = jt3d._viewer.imageryLayers;
-											imageryLayers.raiseToTop(window[serviceId]);
+											imageryLayers.lowerToBottom(window[serviceId]);
+											imageryLayers.raise(window[serviceId]);
+											if (layertype === '标注') {
+												var imageryLayers = jt3d._viewer.imageryLayers;
+												imageryLayers.raiseToTop(window[serviceId]);
+											}
 										}
-									}
-								})
+									})
+								}
 							} else {
 								jt3d.layer.removeImageryProvider({
 									serviceId: _serviceId
@@ -618,20 +632,22 @@
 									}
 								}
 
-								jt3d.layer.addTileMapServiceImagery(_options, function(serviceId) {
+								if (!window[_serviceId]) {
+									jt3d.layer.addTileMapServiceImagery(_options, function(serviceId) {
 
-									//重置图层顺序
-									_self.setLayerNumber(jt3d, serviceId)
-									if (atlastype === "底图") {
-										var imageryLayers = jt3d._viewer.imageryLayers;
-										imageryLayers.lowerToBottom(window[serviceId]);
-										imageryLayers.raise(window[serviceId]);
-										if (layertype === '标注') {
+										//重置图层顺序
+										_self.setLayerNumber(jt3d, serviceId)
+										if (atlastype === "底图") {
 											var imageryLayers = jt3d._viewer.imageryLayers;
-											imageryLayers.raiseToTop(window[serviceId]);
+											imageryLayers.lowerToBottom(window[serviceId]);
+											imageryLayers.raise(window[serviceId]);
+											if (layertype === '标注') {
+												var imageryLayers = jt3d._viewer.imageryLayers;
+												imageryLayers.raiseToTop(window[serviceId]);
+											}
 										}
-									}
-								});
+									});
+								}
 							} else {
 								jt3d.layer.removeImageryProvider({
 									serviceId: _serviceId
@@ -645,9 +661,7 @@
 							if (checked) {
 								data.isinit = '1';
 
-								if (window[_serviceId]) {
-									window[_serviceId].show = true;
-								} else {
+								if (!window[_serviceId]) {
 									//设置参数
 									let _options = {
 										id: _serviceId,
@@ -667,17 +681,17 @@
 									});
 								}
 							} else {
-								if (window[_serviceId]) {
-									//3DTileset数据量比较大,会报很多cesium错误
-									// jt3d.layer.removeScenePrimitives({
-									// 	serviceId: _serviceId
-									// }).then(res => {
-									// 	data.isinit = '0';
-									// });
-
-									window[_serviceId].show = false;
+								// 3DTileset数据量比较大,会报很多cesium错误
+								jt3d.layer.removeScenePrimitives({
+									serviceId: _serviceId
+								}).then(res => {
 									data.isinit = '0';
-								}
+								});
+
+								// if (window[_serviceId]) {
+								// 	window[_serviceId].show = false;
+								// 	data.isinit = '0';
+								// }
 							}
 
 							break;
@@ -685,9 +699,7 @@
 							if (checked) {
 								data.isinit = '1';
 
-								if (window[_serviceId]) {
-									window[_serviceId].show = true;
-								} else {
+								if (!window[_serviceId]) {
 									//设置参数
 									let _options = {
 										id: _serviceId,
@@ -705,16 +717,16 @@
 									});
 								}
 							} else {
-								if (window[_serviceId]) {
-									// jt3d.layer.removeScenePrimitives({
-									// 	serviceId: _serviceId
-									// }).then(res => {
-									// 	data.isinit = '0';
-									// });
-
-									window[_serviceId].show = false;
+								jt3d.layer.removeScenePrimitives({
+									serviceId: _serviceId
+								}).then(res => {
 									data.isinit = '0';
-								}
+								});
+
+								// if (window[_serviceId]) {
+								// 	window[_serviceId].show = false;
+								// 	data.isinit = '0';
+								// }
 							}
 							break;
 						default: