| 
					
				 | 
			
			
				@@ -105,10 +105,19 @@ import * as pick_cockpit_vector from "./pick_cockpit_vector.js"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import * as tdsy from "@/views/cockpit/js/tdsy"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import * as turf from "@turf/turf"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { bbox } from "@/utils/MapHelper/help.js"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  polygon, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  area, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  booleanContains, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  intersect, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} from "@turf/turf"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let gwtype; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let query_click = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let manager_layer_png = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let dataSourceLayer = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var handlerPolygon; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var handleInput; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var polygonEntity = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   name: "clickQuery", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   components: { CockpitVector, MultiLevelQuery }, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -146,6 +155,12 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           iconName: "el-icon-tickets", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           isSelect: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          index: 6, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          lable: "框选", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          iconName: "el-icon-edit-outline", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          isSelect: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           index: 2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           lable: "模型", 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -537,19 +552,34 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         obj.source.split(",") == `${obj.fwgzkj}:${obj.fwmc}` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       let that = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      let queryByIDParameters = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        getFeatureMode: "BUFFER", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // getFeatureMode: "SPATIAL", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // let queryByIDParameters = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //   getFeatureMode: "BUFFER", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //   // getFeatureMode: "SPATIAL", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //   spatialQueryMode: "INTERSECT", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //   datasetNames: [`${obj.fwgzkj}:${obj.fwmc}`], //obj.source.split(","), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //   geometry: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //     parts: [1], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //     points: [{ y: xy.lat, x: xy.lng }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //     type: "POINT", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //   }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //   bufferDistance: 0.00005, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //   hasGeometry: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let queryByIDParameters = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // getFeatureMode: "BUFFER", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        getFeatureMode: "SPATIAL", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         spatialQueryMode: "INTERSECT", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         datasetNames: [`${obj.fwgzkj}:${obj.fwmc}`], //obj.source.split(","), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         geometry: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           parts: [1], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          points: [{ y: xy.lat, x: xy.lng }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          type: "POINT", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // points: [{ y: xy.lat, x: xy.lng }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          points: [{"x":109.512284320217,"y":18.2979368144667},{"x":109.5159110704939,"y":18.286557933355265},{"x":109.527722824416,"y":18.29157815286776}], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          type: "REGION", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         bufferDistance: 0.00005, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         hasGeometry: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      console.log('zouzhele'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       let e; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (obj.type == "S3M") { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -909,9 +939,149 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           this.$refs.MultiLevelQuery.init_handler(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        case 6: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          //联级查询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // this.$refs.MultiLevelQuery.init_handler(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.drawPolygon() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          console.log('框选事件'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 点击绘制多边形 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     drawPolygon() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      viewer.entities.removeAll(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (polygonEntity) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        viewer.entities.remove(polygonEntity) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.startPolygon(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 绘制多边形 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     startPolygon() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var that = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      debugger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (handleInput) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        handleInput.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        handleInput.destroy(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        handleInput=null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      handlerPolygon = new Cesium.DrawHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        viewer, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Cesium.DrawMode.Polygon, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      handlerPolygon.activate() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      handlerPolygon.activeEvt.addEventListener(function (isActive) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (isActive == true) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          viewer.enableCursorStyle = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          viewer._element.style.cursor = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // var nodes = document.getElementsByTagName('body') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // if (nodes.length > 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          //     nodes[0].className.replace('drawCur','drawCur') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          viewer.enableCursorStyle = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // var nodes = document.getElementsByTagName('body') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // if (nodes.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          //     nodes[0].className.replace('drawCur','') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      handlerPolygon.movingEvt.addEventListener(function (windowPosition) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // if (this.handlerPolygon.isDrawing) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     window.createTooltip.showAt(windowPosition, '点击确定多边形顶点,右键单击结束绘制,'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     window.createTooltip.showAt(windowPosition, '点击绘制第一个点,'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      handlerPolygon.drawEvt.addEventListener(function (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // handlerPolygon.polygon.show = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // handlerPolygon.polyline.show = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var nPositions = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var nRegions = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // that.regions = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (var pt of result.object.positions) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          var cartographic = Cesium.Cartographic.fromCartesian(pt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          var longitude = Cesium.Math.toDegrees(cartographic.longitude); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          var latitude = Cesium.Math.toDegrees(cartographic.latitude); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          var height = cartographic.height; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // that.regions.push({ x: longitude, y: latitude }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          nPositions.push(longitude) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          nPositions.push(latitude) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          nRegions.push({'x':longitude,'y':latitude}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // that.regions.push(that.regions[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        viewer.entities.removeAll(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        polygonEntity = new Cesium.Entity({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          id: 'polygon', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // position: Cesium.Cartesian3.fromDegreesArray([ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          //   centerX, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          //   centerY, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // ]), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // classificationType: ClassificationType.TERRAIN, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          polygon: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            hierarchy: new Cesium.PolygonHierarchy( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              new Cesium.Cartesian3.fromDegreesArray(nPositions) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // positions: new Cesium.Cartesian3.fromDegreesArray(positions), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            material: Cesium.Color.WHITE.withAlpha(0.3), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            outline: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            outlineColor: Cesium.Color.RED, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            outlineWidth: 2.0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        viewer.entities.add(polygonEntity) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log(nRegions,'nRegions'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let queryByIDParameters = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // getFeatureMode: "BUFFER", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        getFeatureMode: "SPATIAL", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        spatialQueryMode: "INTERSECT", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        datasetNames: [`${obj.fwgzkj}:${obj.fwmc}`], //obj.source.split(","), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        geometry: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          parts: [1], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // points: [{ y: xy.lat, x: xy.lng }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          points: nRegions, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          type: "REGION", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        bufferDistance: 0.00005, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        hasGeometry: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // that.curProjectInfo.regions = that.regions; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // that.regions = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // that.regions.push(that.positions); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // viewer.flyTo(polygonEntity)//绘制完毕飞入绘制的多边形 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        handlerPolygon.clear() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        handlerPolygon.deactivate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   beforeDestroy() { 
			 |