3 Коміти 06f6afd2fb ... caace70ca5

Автор SHA1 Опис Дата
  lkk caace70ca5 Merge branch 'master' of http://114.244.114.158:8802/siwei/real3d-portalsite 11 місяців тому
  lkk 5b72aaedf8 Merge branch 'master' of http://114.244.114.158:8802/siwei/real3d-portalsite 11 місяців тому
  lkk bb7f648c6b 框选点位数据查询 11 місяців тому
1 змінених файлів з 102 додано та 11 видалено
  1. 102 11
      src/components/Query/clickQuery/clickQuery.vue

+ 102 - 11
src/components/Query/clickQuery/clickQuery.vue

@@ -419,13 +419,92 @@ export default {
         this.pickPosition(movement);
       }
     },
-    mapSelect(movement) {
-      console.log(window.tempSelect, "window.tempSelect");
-      let url1 = window.tempSelect.url.replace("3D-", "data-");
-      let url2 = url1.replace(
-        "realspace",
-        "data/featureResults.rjson?returnContent=true"
-      );
+    async mapSelect(pos, obj) {
+      // let obj = window.tempSelect;
+      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: pos,
+          type: "REGION",
+        },
+        bufferDistance: 0.00005,
+        hasGeometry: true,
+      };
+      let url2 = this.calcIserverURI(obj.url);
+      let e;
+      e = await this.mapQuery(url2, queryByIDParameters);
+      if (e && e.totalCount > 0) {
+        this.addLayerList(obj.title, obj);
+        let queryData = [];
+        let geoms = [];
+        let parts = [];
+        // let parseJson = JSON.parse(obj.legend);
+        let parseJson = await this.getfieldList(obj.id, false);
+        for (let u = 0; u < e.features.length; u++) {
+          let cur = [];
+          var linSAr = JSON.parse(JSON.stringify(e.features[u]));
+          function condition(ci) {
+            return ci.status != undefined && ci.status;
+          }
+          if (e.features[u].fieldNames) {
+            linSAr.fieldNames.forEach((fieldName, i) => {
+              let perjson = parseJson.filter(
+                (p) => p.filedName.toUpperCase() == fieldName
+              );
+              if (perjson.length > 0) {
+                var show = condition(perjson[0]);
+                var order = perjson[0].order || linSAr.fieldNames.length;
+                if (fieldName != perjson[0].filedNameZh)
+                  fieldName = perjson[0].filedNameZh;
+              }
+              if (show) {
+                let v = linSAr.fieldValues[i];
+                if (v != "" && !isNaN(parseFloat(v))) {
+                  v = Math.round(parseFloat(v) * 100) / 100;
+                }
+                cur.push({ name: fieldName, value: v, order });
+              }
+            });
+          } else {
+            that.$message({
+              message: "查询结果为空!",
+              type: "warning",
+              customClass: "messageIndex",
+            });
+          }
+          // console.log(cur, "cur");
+          //排序
+          cur.sort((a, b) => a.order - b.order);
+          let urlNew = obj.url + ".json";
+          let resNew = await axios.get(urlNew);
+          let serCode = resNew.data.prjCoordSys.epsgCode;
+          let points = [];
+          for (let y = 0; y < e.features[u].geometry.points.length; y++) {
+            let c = {};
+            if (serCode == 3857) {
+              c = that.cartesianToCartographic84(
+                e.features[u].geometry.points[y].x,
+                e.features[u].geometry.points[y].y
+              );
+            } else {
+              c = e.features[u].geometry.points[y];
+            }
+            points.push([c.x, c.y]);
+          }
+          parts.push(e.features[u].geometry.parts);
+          geoms.push(points);
+          queryData.push(cur);
+        }
+
+        this.queryResultsGeomPart[obj.id] = parts;
+        this.queryResults[obj.id] = queryData;
+        this.queryResultsGeom[obj.id] = geoms;
+      }
+      this.setactiveLayerId();
 
       // this.drawPolygon(window.tempSelect)
       // //拾取模型
@@ -957,6 +1036,7 @@ export default {
     },
     //绘制
     drawMap() {
+      let nReaions = [];
       let that = this;
       this.activeLayerId = "0";
       this.layerList = [];
@@ -971,6 +1051,20 @@ export default {
       }
       common.handlerDrawing("Polygon").then(
         (res) => {
+          //过滤掉高度
+          const filteredArr = res.positions.filter((item, index) => {
+            if ((index + 1) % 3 !== 0) return item;
+          });
+          filteredArr.push(res.positions[0]);
+          filteredArr.push(res.positions[1]);
+          console.log(filteredArr, "max-----");
+          for (let i = 0; i < filteredArr.length; i += 2) {
+            nReaions.push({
+              x: filteredArr.slice(i, i + 2)[0],
+              y: filteredArr.slice(i, i + 2)[1],
+            });
+          }
+          // console.log(nReaions, "nReaions");
           removeGeoJSON("geoserver");
           store.state.vectorlayerlist.forEach((obj) => {
             if (obj.serverType == "geoserver") {
@@ -984,10 +1078,7 @@ export default {
               console.log(res.positions, points);
               this.getGeoserver({ points }, obj);
             } else {
-              //     if (!obj.fwgzkj && !obj.fwmc) {
-              //   continue;
-              // }
-              // this.superQuery(xy, obj);
+              this.mapSelect(nReaions,obj);
             }
           });
         },