Ver código fonte

框选查询

maxiaoxiao 9 meses atrás
pai
commit
e3d4d35787
1 arquivos alterados com 13 adições e 145 exclusões
  1. 13 145
      src/components/Query/clickQuery/clickQuery.vue

+ 13 - 145
src/components/Query/clickQuery/clickQuery.vue

@@ -105,19 +105,10 @@ 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 },
@@ -565,7 +556,7 @@ export default {
       //   bufferDistance: 0.00005,
       //   hasGeometry: true,
       // };
-            let queryByIDParameters = {
+      let queryByIDParameters = {
         // getFeatureMode: "BUFFER",
         getFeatureMode: "SPATIAL",
         spatialQueryMode: "INTERSECT",
@@ -681,6 +672,17 @@ export default {
           ? obj.url.indexOf("geoserver")
           : obj.url.indexOf("siweiserver");
       let url = obj.url.substring(0, ind + 9) + "/ows";
+      let point =
+        "109.63004004171668,18.23499241311749 109.63028021461876,18.23213821035424 109.63097884008462,18.234344782708543 109.63004004171668,18.23499241311749";
+      let pointml = `<gml:Point srsName='EPSG:4326'><gml:coordinates>
+          ${xy.lng},${xy.lat}</gml:coordinates></gml:Point>`;
+      let polygonml = `<gml:Polygon srsName="EPSG:4326">
+          <gml:outerBoundaryIs>
+            <gml:LinearRing>
+              <gml:coordinates> ${point} </gml:coordinates>
+            </gml:LinearRing>
+          </gml:outerBoundaryIs>
+        </gml:Polygon>`;
       let params = {
         service: "WFS",
         version: "1.0.0",
@@ -688,8 +690,7 @@ export default {
         typeName: `${obj.fwgzkj}:${obj.fwmc}`,
         outputFormat: "application/json",
         srsName: "EPSG:4326",
-        filter: `<Filter xmlns='http://www.opengis.net/ogc' xmlns:gml='http://www.opengis.net/gml'><Intersects><PropertyName>geom</PropertyName><gml:Point srsName='EPSG:4326'><gml:coordinates>
-          ${xy.lng},${xy.lat}</gml:coordinates></gml:Point></Intersects></Filter>`,
+        filter: `<Filter xmlns='http://www.opengis.net/ogc' xmlns:gml='http://www.opengis.net/gml'><Intersects><PropertyName>geom</PropertyName> ${polygonml}</Intersects></Filter>`,
       };
       console.log("----", params);
       let res = await axios.get(url, { params });
@@ -949,139 +950,6 @@ export default {
         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() {