浏览代码

Merge branch 'master' of http://114.244.114.158:8802/siwei/real3d-portalsite

maxiaoxiao 9 月之前
父节点
当前提交
e2d7b3e74e

文件差异内容过多而无法显示
+ 0 - 0
src/views/ConstructionApplication3D/BenchmarkLandPriceAnalysis/BenchmarkLandPrice.js


+ 57 - 33
src/views/ConstructionApplication3D/Demolition/DemolitionList.vue

@@ -144,11 +144,11 @@
             </div>
             <el-tabs v-model="activePage2" @tab-click="pageClick" style="height: auto;">
               <el-tab-pane label="国有权属" name="GYQS">
-                <div id="GYQSChart" style="height: 15rem; width: 30rem;"></div>
-                <div id="GYDLChart" style="height: 15rem; width: 30rem;"></div>
+                <div id="GYQSChart" style="height: 15rem; width: 25rem;"></div>
+                <div id="GYDLChart" style="height: 15rem; width: 25rem;"></div>
               </el-tab-pane>
               <el-tab-pane label="国有房产" name="GYFC">
-                <ul style="width: 30rem;height: 30rem;overflow-y: auto;">
+                <ul style="width: 25rem;height: 25rem;overflow-y: auto;">
                   <!-- item = { id: smid, cqr: cqrVal, jg: fwjgVal, fwdj: fwdjVal, floor: floorVal, jzmj: jzmjVal, zdmj: zdmjVal, address: addressVal, pay: pay, single: BZ } -->
                   <li v-for="(cqItem, index) in cqResult.gyList" :key="index"
                     style="margin-bottom: 0.5rem; font-size: 0.8rem">
@@ -157,7 +157,7 @@
                         <span style="color: #06c4f3; font-weight: 600">{{ index + 1 }}.&nbsp{{ cqItem.cqr }}</span>
                       </el-col>
                       <el-col :span="4">
-                        <el-image src="../../../../static/images/location1.png" style="height: 1.2rem; width: 1.2rem"
+                        <el-image src="../../../../static/images/location1.png" style="height: 1.5rem; width: 1.5rem"
                           @click="cqLocation(true, cqItem.smid, cqItem.cqr)"></el-image>
                       </el-col>
 
@@ -199,7 +199,12 @@
               </div>
             </div>
             <el-tabs v-model="activePage3" @tab-click="pageClick">
-              <el-tab-pane label="征地补偿费评估" name="ZDPG">
+              <el-tab-pane label="集体权属" name="JTQS">
+                <!-- <div id="GYQSChart" style="height: 12rem; width: 25rem;"></div> -->
+                <div id="JTUSEChart" style="height: 15rem; width: 25rem;"></div>
+                <div id="JTOWNERChart" style="height:15rem; width: 25rem;"></div>
+              </el-tab-pane>
+              <el-tab-pane label="征地补偿" name="ZDPG">
                 <div class="divrow">
                   <div class="divCol">
                     <div class="divImg">
@@ -245,9 +250,9 @@
                     </div>
                   </div>
                 </div>
-                <div id="JTDLChart" style="height: 25rem; width: 30rem; overflow-y: auto"></div>
+                <div id="JTDLChart" style="height: 25rem; width: 25rem; overflow-y: auto"></div>
               </el-tab-pane>
-              <el-tab-pane label="青苗补偿费评估" name="QMPG">
+              <el-tab-pane label="青苗补偿" name="QMPG">
                 <!-- 第一行 -->
                 <div class="divrow">
                   <div class="divCol">
@@ -270,7 +275,7 @@
                     </div>
                     <div class="divText">
                       <div>
-                        <span style="color: #fff"> 青苗补偿预估(万元)</span>
+                        <span style="color: #fff"> 青苗补偿(万元)</span>
                       </div>
                       <div>
                         <span color="#2d8cf0"> {{ qmResult.totalPay }}</span>
@@ -300,7 +305,7 @@
                     </div>
                     <div class="divText">
                       <div>
-                        <span style="color: #fff"> 农作物补偿费用预估(万元)</span>
+                        <span style="color: #fff"> 农作物补偿费用(万元)</span>
                       </div>
                       <div>
                         <span color="#2d8cf0"> {{ qmResult.nzwPay }}</span>
@@ -330,7 +335,7 @@
                     </div>
                     <div class="divText">
                       <div>
-                        <span style="color: #fff"> 经济作物补偿费预估(万元)</span>
+                        <span style="color: #fff"> 经济作物补偿费(万元)</span>
                       </div>
                       <div>
                         <span color="#2d8cf0"> {{ qmResult.jjzwPay }}</span>
@@ -360,7 +365,7 @@
                     </div>
                     <div class="divText">
                       <div>
-                        <span style="color: #fff"> 树木补偿费用预估(万元)</span>
+                        <span style="color: #fff"> 树木补偿费用(万元)</span>
                       </div>
                       <div>
                         <span color="#2d8cf0"> {{ qmResult.smPay }}</span>
@@ -371,7 +376,7 @@
                 <div id="QMMJChart" style="height: 10rem; width: 25rem"></div>
                 <div id="QMFYChart" style="height: 10rem; width: 25rem"></div>
               </el-tab-pane>
-              <el-tab-pane label="房屋拆迁补偿费评估" name="FWCQ">
+              <el-tab-pane label="房屋拆迁补偿" name="FWCQ">
                 <!-- 第1行 -->
                 <div class="divrow">
                   <div class="divCol">
@@ -456,7 +461,7 @@
                 <el-input placeholder="请输入查询内容" suffix-icon="el-icon-search"></el-input>
               </el-col>
             </div> -->
-                <ul style="width: 30rem;height: 30rem;overflow-y: auto;">
+                <ul style="width: 25rem;height: 25rem;overflow-y: auto;">
                   <!-- item = { id: smid, cqr: cqrVal, jg: fwjgVal, fwdj: fwdjVal, floor: floorVal, jzmj: jzmjVal, zdmj: zdmjVal, address: addressVal, pay: pay, single: BZ } -->
                   <li v-for="(cqItem, index) in cqResult.jtList" :key="index"
                     style="margin-bottom: 0.5rem; font-size: 0.8rem">
@@ -465,7 +470,7 @@
                         <span style="color: #06c4f3; font-weight: 600">{{ index + 1 }}.&nbsp{{ cqItem.cqr }}</span>
                       </el-col>
                       <el-col :span="4">
-                        <el-image src="../../../../static/images/location1.png" style="height: 1.2rem; width: 1.2rem"
+                        <el-image src="../../../../static/images/location1.png" style="height: 1.5rem; width: 1.5rem"
                           @click="cqLocation(false, cqItem.smid, cqItem.cqr)"></el-image>
                         <!-- <img src="imgs.zd1" /> -->
                         <!-- <i class="el-icon-s-operation"></i> -->
@@ -491,11 +496,7 @@
                 </ul>
               </el-tab-pane>
 
-              <el-tab-pane label="集体权属" name="JTQS">
-                <!-- <div id="GYQSChart" style="height: 12rem; width: 25rem;"></div> -->
-                <div id="JTUSEChart" style="height: 15rem; width: 30rem;"></div>
-                <div id="JTOWNERChart" style="height:15rem; width: 30rem;"></div>
-              </el-tab-pane>
+
             </el-tabs>
           </el-tab-pane>
         </el-tabs>
@@ -524,7 +525,7 @@ import ZDSetInfo from "./ZDSetInfo.vue";
 import ZDShowInfo from "./ZDShowInfo.vue";
 import Property from "./Property.vue";
 import { getZDBCWord, getWord } from "@/api/zt/ztApi.js";
-import zdAnalyse from "./zdAnalyse.min.js"
+import zdAnalyse from "./zdAnalyse.js"
 var handlerPolygon;
 var handleInput;
 var polygonEntity = null;
@@ -1698,7 +1699,7 @@ export default {
           type: "scroll",
           orient: "vertical",
           right: 0,
-          top: 20,
+          top: '20%',
           bottom: 20,
           radius: "55%",
           // bottom: 20,
@@ -1854,11 +1855,15 @@ export default {
         colors.push(color);
       }
       var option = {
-        //   title: {
-        //       text: '',
-        //       subtext: '',
-        //       left: 'center'
-        //   },
+        title: {
+          text: '现状情况', //国有所有权信息
+          subtext: '',
+          top: 'top',
+          left: 'center',
+          textStyle: {
+            color: "#FFFFFF"
+          }
+        },
         tooltip: {
           trigger: "item",
         },
@@ -1866,7 +1871,7 @@ export default {
           type: "scroll",
           orient: "vertical",
           right: 0,
-          top: 20,
+          top: '20%',
           bottom: 20,
           radius: "55%",
           // bottom: 20,
@@ -2333,7 +2338,7 @@ export default {
       }
       var option = {
         title: {
-          text: '', //国有所有权信息
+          text: '权属信息', //国有所有权信息
           subtext: '',
           top: 'top',
           left: 'center',
@@ -2348,7 +2353,7 @@ export default {
           type: "scroll",
           orient: "vertical",
           right: 0,
-          top: 20,
+          top: '20%',
           bottom: 20,
           radius: "55%",
           // bottom: 20,
@@ -2617,7 +2622,7 @@ export default {
           type: "scroll",
           orient: "vertical",
           right: 0,
-          top: 20,
+          top: '20%',
           bottom: 20,
           radius: "55%",
           itemStyle: {
@@ -2893,7 +2898,7 @@ export default {
           type: "scroll",
           orient: "vertical",
           right: 0,
-          top: 20,
+          top: '20%',
           bottom: 20,
           radius: "55%",
           // bottom: 20,
@@ -3204,6 +3209,7 @@ export default {
       if (index > -1) {
         var entity = viewer.entities.getById("ZDBDC_" + smid);
         entity.show = true
+        viewer.flyTo(entity)
       }
       else {
         for (var i = 0; i < features.length; i++) {
@@ -3275,7 +3281,7 @@ export default {
           entiy.attributes = attributes;
           viewer.entities.add(entiy);
           that.entities.push({ type: "ZDBDC", id: "ZDBDC_" + smid })
-          // viewer.flyTo(entiy)
+          viewer.flyTo(entiy)
 
         }
       }
@@ -3290,6 +3296,12 @@ export default {
         // alert('请导入或绘制项目范围')
         return false;
       }
+      debugger
+      var area = that.getRegionArea() / 666.66;
+      if (area > 3000) {
+        that.$alert("项目范围不要超过3000亩,请重新输入项目范围", "警告");
+        return false;
+      }
       that.$refs[formName].validate(async (valid) => {
         if (valid) {
           //alert('submit!');
@@ -3363,7 +3375,19 @@ export default {
       });
 
     },
-
+    //范围面积
+    getRegionArea() {
+      debugger
+      var points1 = this.regions;
+      var parts1 = [];
+      var poly1;
+      for (var i = 0; i < points1.length; i++) {
+        parts1.push([points1[i].x, points1[i].y]);
+      }
+      poly1 = polygon([parts1]);
+      var textarea = area(poly1) * window.earthRadius;
+      return textarea;
+    },
     /***
      * pararm {object} @arr
      */

文件差异内容过多而无法显示
+ 0 - 0
src/views/ConstructionApplication3D/Demolition/zdAnalyse.js


+ 60 - 11
src/views/ConstructionApplication3D/SunlightAnalysis/SunlightAnalysis.vue

@@ -150,7 +150,7 @@
           <el-tooltip
             effect="dark"
             content="日照时长结果生成后,调整地图到合适位置,然后导出"
-            placement="top"
+            placement="bottom"
           >
             <el-button
               size="mini"
@@ -219,6 +219,7 @@ import {
   featureCollection,
   interpolate,
   isobands,
+  area,
   isolines,
   pointGrid,
 } from "@turf/turf";
@@ -472,6 +473,7 @@ export default {
     },
     analysis() {
       let that = this;
+      that.clear();
       that.tableData = [];
       if (!handlerPolygon) {
         handlerPolygon = new Cesium.DrawHandler(
@@ -551,7 +553,7 @@ export default {
                     material: new Cesium.Color.fromCssColorString(
                       element.properties.fill
                     ).withAlpha(0.9),
-                    height: gd + 1,
+                    height: gd + 3,
                     outline: false,
                     // outlineColor: Cesium.Color.BLACK,
                     // outlineWidth: 2.0,
@@ -613,19 +615,59 @@ export default {
         //设置当前时间
         that.setCurrentTime();
 
+        //设置根据面积计算间隔
+        debugger;
+        var trufpolygons = [];
+        for (let pindex = 0; pindex < polygons.positions.length; pindex++) {
+          var pposition = polygons.positions[pindex];
+          var e_cartographic = Cesium.Cartographic.fromCartesian(pposition);
+          var e_longitude = Cesium.Math.toDegrees(e_cartographic.longitude);
+          var e_latitude = Cesium.Math.toDegrees(e_cartographic.latitude);
+          trufpolygons.push([e_longitude, e_latitude]);
+        }
+
+        if (trufpolygons[0] != trufpolygons[trufpolygons.length - 1]) {
+          trufpolygons.push(trufpolygons[0]);
+        }
+        let polygonPs = polygon([trufpolygons]);
+        let areaPs = area(polygonPs);
+        if (areaPs <= 20000) {
+          that.form.spacing = 3;
+        } else if (areaPs <= 60000) {
+          that.form.spacing = 5;
+        } else if (areaPs <= 100000) {
+          that.form.spacing = 8;
+        } else {
+          that.form.spacing = 10;
+        }
+
         shadowQuery.spacing = that.form.spacing;
         shadowQuery.timeInterval = that.form.timeInterval;
 
         //设置分析区域、底部高程和拉伸高度
         var bh = Number(gd + 1);
         var eh = Number(2);
-        shadowQuery.qureyRegion({
-          position: that.points,
-          bottom: bh,
-          extend: eh,
-        });
-        shadowQuery.build();
-        // that.resetForm();
+        if (areaPs < 250000) {
+          shadowQuery.qureyRegion({
+            position: that.points,
+            bottom: bh,
+            extend: eh,
+          });
+          shadowQuery.build();
+          // that.resetForm();
+        } else {
+          that.loading = false;
+          this.$message({
+            dangerouslyUseHTMLString: true,
+            message:
+              "框选范围过大,为确保分析精度,建议以小区为单位<br />请选取小于250000平方米的区域!!!",
+            type: "warning",
+          });
+          if (shadowQuery) {
+            shadowQuery.destroy();
+            shadowQuery = null;
+          }
+        }
       });
     },
     ExportResult() {
@@ -746,7 +788,9 @@ export default {
 
       this.positions = [];
       this.points = [];
-
+      for (let i = 0; i < this.eids.length; i++) {
+        viewer.entities.removeById(this.eids[i]);
+      }
       // this.sdh = [];
       this.eids = [];
     },
@@ -901,10 +945,15 @@ export default {
       };
       // 准备工作结束
 
+      debugger;
       // 将散点合并成要素集
       const points = featureCollection(features);
       // 使用反向距离加权(IDW)方法进行运算
-      const grid = interpolate(points, 0.00003, interpolateOptions);
+      const grid = interpolate(
+        points,
+        this.form.spacing * 0.00001,
+        interpolateOptions
+      );
       // 根据参与分级的属性和分级的数组计算出等值面
       const isobandsData = isobands(grid, breaks, isobandsOptions);
       const intersection = featureCollection(isobandsData.features);

+ 1 - 1
src/views/ConstructionApplication3D/backLineAnalysis/backLineAnalysisinfo.vue

@@ -71,7 +71,7 @@
               ></div>
             </div>
           </el-descriptions-item>
-          <el-descriptions-item label="建筑线面"
+          <el-descriptions-item label="建筑退线面"
             ><div
               style="width: 4.5rem; height: 100%"
               :style="{ 'background-color': '#7FFF009C' }"

文件差异内容过多而无法显示
+ 0 - 0
src/views/ConstructionApplication3D/projectManagement/CheckParkAnalyse.js


+ 9 - 705
src/views/ConstructionApplication3D/projectManagement/projectManagement.vue

@@ -683,6 +683,7 @@ import RSAnalysis from "@/views/ConstructionApplication3D/RSAnalysis/RSAnalysis.
 import BuildingStretchingAnalysis from "@/views/ConstructionApplication3D/BuildingStretchingAnalysis/BuildingStretchingAnalysis.vue";
 import parkResult from "@/views/ConstructionApplication3D/parkCheck/parkResult.vue";
 import ghqk from "./ghqk.js";
+import CheckParkAnalyse from "./CheckParkAnalyse.js";
 import {
   listProjectinformation,
   delConstructionmodel,
@@ -2550,7 +2551,10 @@ export default {
         }
         tableDataList.push({ Minfo, KG_Data, FA_Data, TJFA_Data });
       }
-      var result = await this.buidAreaAndParksComputer(Minfo, false);
+      var result = await CheckParkAnalyse.buidAreaAndParksComputer(
+        Minfo,
+        false
+      );
       if (result != null) {
         for (var i = 0; i < tableDataList.length; i++) {
           var item = tableDataList[i];
@@ -2614,7 +2618,10 @@ export default {
      */
     async CheckPark(Minfo, isJSPark) {
       var that = this;
-      var result = await that.buidAreaAndParksComputer(Minfo, isJSPark);
+      var result = await CheckParkAnalyse.buidAreaAndParksComputer(
+        Minfo,
+        isJSPark
+      );
       if (that.skylineAnalysislayerid) {
         that.$layer.close(that.skylineAnalysislayerid);
       }
@@ -2644,710 +2651,7 @@ export default {
         },
       });
     },
-    /**
-     * 计算计容面积及车位
-     * @param {Object} Minfo
-     * @param {Boolean} isJSPark
-     */
-    async buidAreaAndParksComputer(Minfo, isJSPark) {
-      var that = this;
-      var datasourcename = Minfo.datasourcename; //模型数据集
-      var dataurl = Minfo.dataurl; //报建项目服务地址
-      var tcwLayerName = window.CarPark.tcwLayer; //停车位图层
-      var floorLayerName = window.CarPark.floorLayer; //分层矢量图层
-      var JSResult = {
-        id: "",
-        projectinformationid: "",
-        modelname: "",
-        parks: [],
-        buildings: [],
-      };
-
-      var dataSources = [];
-      dataSources.push(datasourcename + ":" + tcwLayerName);
-      dataSources.push(datasourcename + ":" + floorLayerName);
-      //获取停车位及分层数据
-      var result;
-      var queryByGeometryParameters = {
-        getFeatureMode: "SQL",
-        datasetNames: dataSources,
-        queryParameter: {
-          attributeFilter: "SMID!=''",
-        },
-        // hasGeometry: "true",
-        maxFeatures: 10000,
-      };
-      result = await mapQuery(
-        Minfo.dataurl + "/featureResults.json?returnContent=true",
-        queryByGeometryParameters
-      );
-      if (result && result.totalCount == 0) {
-        this.$message("未查询到停车位和报建分层数据数据,请重新尝试");
-        return;
-      }
-      /**
-       * 总建筑面积
-       */
-      var totalMJ = 0.0;
-      /**
-       * 总计容建筑面积
-       */
-      var totalJRArea = 0.0;
-      var jrFldIndex = -1;
-      var datasetInfos = result.datasetInfos;
-      if (datasetInfos == null || datasetInfos.length == 0) {
-        that.$message("未查询到停车位和报建分层数据数据,请重新尝试");
-        return;
-      }
-      var layerName = "";
-      var start = 0;
-      var end = 0;
-      var curFreatures = [];
-      for (var i = 0; i < datasetInfos.length; i++) {
-        start = datasetInfos[i].featureRange.start;
-        end = datasetInfos[i].featureRange.end;
-        curFreatures = result.features.filter((item, index) => {
-          return index >= start && index <= end;
-        });
-        if (datasetInfos[i].datasetName.indexOf(tcwLayerName) > -1) {
-          layerName = tcwLayerName;
-          JSResult.parks = that.statisticscCarpark(
-            datasetInfos[i].fieldInfos,
-            curFreatures
-          );
-        } else if (datasetInfos[i].datasetName.indexOf(floorLayerName) > -1) {
-          layerName = floorLayerName;
-          JSResult.buildings = that.jsJRAreaAndParks(
-            datasetInfos[i].fieldInfos,
-            curFreatures,
-            isJSPark
-          );
-        }
-      }
-      return JSResult;
-    },
-    /**
-     * 统计报建数据停车位数量
-     */
-    statisticscCarpark(fieldInfos, features) {
-      var that = this;
-      var CWTypeFld = window.CarPark.CWTypeFld; //机动车  非机动车
-      var CWTypeFldIndex = that.getfldIndex(fieldInfos, CWTypeFld);
-      var CWTypeFldVal = "";
-      var LandNoFld = window.CarPark.LandNoFld;
-      var LandNoFldIndex = that.getfldIndex(fieldInfos, LandNoFld);
-      var LandNoFldVal = "";
-
-      var FloorFld = window.CarPark.FloorFld;
-      var FloorFldIndex = that.getfldIndex(fieldInfos, FloorFld); //当前楼层字段
-      var FloorFldVal = "";
-      var parks = [
-        // {
-        //   landNo: '',
-        //   totalCount: 0,
-        //   jdcCount: 0,
-        //   fjdcCount: 0,
-        //   floors: [
-        //     {
-        //       layer: '',
-        //       layerTotal: 0,
-        //       jdcCount: 0,
-        //       fjdcCount: 0,
-        //     }
-        //   ]
-        // }
-      ];
-      var curFeature;
-
-      var tcwList = [
-        //   {
-        //   landNo: '',
-        //   floor: '',
-        //   CWType: ''
-        // }
-      ];
-      var landList = [];
-      for (var i = 0; i < features.length; i++) {
-        //地块
-        curFeature = features[i];
-        if (LandNoFldIndex > -1) {
-          LandNoFldVal = curFeature.fieldValues[LandNoFldIndex];
-        }
-        if (LandNoFldVal == "") LandNoFldVal = "无";
-        // var landItemIndex = parks.findIndex((item, index) => {
-        //   return item.landNo.toup() == LandNoFldVal.toUpperCase()
-        // })
-
-        if (landList.indexOf(LandNoFldVal) == -1) landList.push(LandNoFldVal);
-        if (CWTypeFldIndex > -1)
-          CWTypeFldVal = curFeature.fieldValues[CWTypeFldIndex];
-        else CWTypeFldVal = "机动车";
-        if (FloorFldIndex > -1)
-          FloorFldVal = curFeature.fieldValues[FloorFldIndex];
-        else FloorFldVal = "1";
-        tcwList.push({
-          landNo: LandNoFldVal,
-          floor: FloorFldVal,
-          CWType: CWTypeFldVal,
-        });
-      }
-      var floors = [];
-      var landItems = [];
-      for (var j = 0; j < landList.length; j++) {
-        var landText = landList[j];
-        landItems = tcwList.filter((t) => t.landNo == landText);
-        var jdcCount = 0;
-        var fjdcCount = 0;
-        //地块
-        for (var i = 0; i < landItems.length; i++) {
-          if (landItems[i].CWType == "机动车") {
-            jdcCount++;
-          } else if (landItems[i].CWType == "非机动车") {
-            fjdcCount++;
-          }
-          if (floors.indexOf(landItems[i].floor) == -1) {
-            floors.push(landItems[i].floor);
-          }
-        }
-        //楼层
-        var floorParks = [];
-        for (var index = 0; index < floors.length; index++) {
-          var floorItems = landItems.filter((t) => t.floor == floors[index]);
-          var jdcItems = landItems.filter(
-            (t) => t.floor == floors[index] && t.CWType == "机动车"
-          );
-          var fjdcItems = landItems.filter(
-            (t) => t.floor == floors[index] && t.CWType == "非机动车"
-          );
-          floorParks.push({
-            layer: floors[index],
-            tcwCount: floorItems.length,
-            jdcCount: jdcItems.length,
-            fjdcCount: fjdcItems.length,
-          });
-        }
-        parks.push({
-          landNo: landText,
-          totalCount: landItems.length,
-          jdcCount: jdcCount,
-          fjdcCount: fjdcCount,
-          floors: floorParks,
-        });
-      }
-      return parks;
-    },
-    /**
-     * 查询字段索引
-     */
-    getfldIndex(fieldInfos, fldName) {
-      var fldIndex = -1;
-      if (fieldInfos == null || fldName == null) return fldIndex;
-      fieldInfos.forEach((fld, index) => {
-        if (fld.name.toUpperCase() == fldName.toUpperCase()) {
-          fldIndex = index;
-        }
-      });
-      return fldIndex;
-    },
-    /***
-     * 计算计容面积及必要停车位数量
-     * @param {Array}fieldInfos iserver 查询服务  字段信息
-     * @param {Array}features   iserver 查询服务  要素集合
-     * @param {boolean}isJSPark  是否计算规定的车位数量  true/false
-     */
-    jsJRAreaAndParks(fieldInfos, features, isJSPark) {
-      var that = this;
 
-      var ClassFld = window.CarPark.ClassFld; //  ClassFld: 'YT',//建筑类型:居住、办公商业 商业 酒店
-      var ClassFldIndex = that.getfldIndex(fieldInfos, ClassFld);
-      var ClassFldVal = "";
-      var LandNoFld = window.CarPark.LandNoFld;
-      var LandNoFldIndex = that.getfldIndex(fieldInfos, LandNoFld);
-      var LandNoFldVal = "";
-      //楼号
-      var BuidNoFld = window.CarPark.BuidNoFld;
-      var BuidNoFldIndex = that.getfldIndex(fieldInfos, BuidNoFld);
-      var BuidNoFldVal = "";
-
-      var FloorFld = window.CarPark.FloorFld;
-      var FloorFldIndex = that.getfldIndex(fieldInfos, FloorFld); //当前楼层字段
-      var FloorFldVal = "";
-
-      var JRAreaFld = window.CarPark.JRAreaFld; //当前楼层字段 //计容面积
-      var JRAreaFldIndex = that.getfldIndex(fieldInfos, JRAreaFld);
-      var JRAreaFldVal = 0.0;
-
-      var JRRationFld = window.CarPark.JRRationFld; //	计容率
-      var JRRationFldIndex = that.getfldIndex(fieldInfos, JRRationFld);
-      var JRRationFldVal = 0.0;
-
-      var smareaFld = "SMAREA";
-      var smareaFldIndex = that.getfldIndex(fieldInfos, smareaFld);
-      var smareaFldVal = 0.0;
-      //居住  楼层户数
-      var houseFld = window.CarPark.HouseFld;
-      var houseFldIndex = that.getfldIndex(fieldInfos, houseFld); //用途居民建筑类 楼层户数
-      var houseFldVal = 0;
-
-      var B144Fld = window.CarPark.B144Fld; //楼层中144平以上户数
-      var B144FldIndex = that.getfldIndex(fieldInfos, B144Fld); //当前楼层住户144平米以上住户数量字段
-      var B144FldVal = 0;
-
-      var RoomFld = window.CarPark.RoomFld; //酒店类型 客房数
-      var RoomFldIndex = that.getfldIndex(fieldInfos, RoomFld); //酒店类型 当前层 客房数
-      var RoomFldVal = 0;
-
-      var FTeacherFld = window.CarPark.FTeacherFld; //教育用地 教职工人数字段
-      var FTeacherFldIndex = that.getfldIndex(fieldInfos, FTeacherFld);
-      var FTeacherFldVal = 0.0;
-
-      var SeatNumberFld = window.CarPark.SeatNumberFld; //体育馆 音乐厅、影剧院、音乐厅 体育场馆 楼层座位数量
-      var SeatNumberFldIndex = that.getfldIndex(fieldInfos, SeatNumberFld);
-      var SeatNumberFldVal = 0.0;
-      var VisitorFld = window.CarPark.VisitorFld; //设计游客容量 旅游(游览)码头
-      var VisitorFldIndex = that.getfldIndex(fieldInfos, VisitorFld);
-      var VisitorFldVal = 0.0;
-
-      var FAAreaFld = window.CarPark.FAAreaFld; //方案建筑面积
-      var FAAreaFldIndex = that.getfldIndex(fieldInfos, FAAreaFld);
-      var FAAreaFldVal = 0.0;
-      var FAJRAreaFld = window.CarPark.FAJRAreaFld; //方案计容建筑面积
-      var FAJRAreaFldIndex = that.getfldIndex(fieldInfos, FAJRAreaFld);
-      var FAJRAreaFldVal = 0.0;
-
-      var landList = [
-        // //地块
-        // {
-        //   landNo: '',
-        //   buildNum: 0,
-        //   mj: 0.00,
-        //   jrmj: 0.00,
-        //   builds: [
-        //     {
-        //       //一栋
-        //       buildNo: '',
-        //       mj: 0,
-        //       jrmj: 0,
-        //       floorCount: 0,
-        //       floors: [
-        //         //单层
-        //         {
-        //           layer: '',
-        //           yt: '',
-        //           house: 0,
-        //           B144: 0,
-        //           rooms: '',
-        //           mj: 0.00,
-        //           jrmj: 0.00,
-        //           needTcW: 0,
-        //           classes: [
-        //             {
-        //               yt: '',
-        //               house: 0,
-        //               B144: 0,
-        //               rooms: '',
-        //               mj: 0.00,
-        //               jrmj: 0.00,
-        //             }
-        //           ]
-        //         }
-        //       ]
-        //     }
-        //   ]
-        // }
-      ];
-      var allItems = [];
-      var landTextList = [];
-      var curFeature;
-      for (var i = 0; i < features.length; i++) {
-        curFeature = features[i];
-        //地块
-        if (LandNoFldIndex > -1)
-          LandNoFldVal = curFeature.fieldValues[LandNoFldIndex];
-        else LandNoFldVal = "无";
-        if (landTextList.indexOf(LandNoFldVal) == -1)
-          landTextList.push(LandNoFldVal);
-        //楼号
-        if (BuidNoFldIndex > -1)
-          BuidNoFldVal = curFeature.fieldValues[BuidNoFldIndex];
-        //用途
-        if (ClassFldIndex > -1)
-          ClassFldVal = curFeature.fieldValues[ClassFldIndex];
-        //楼层
-        if (FloorFldIndex > -1)
-          FloorFldVal = curFeature.fieldValues[FloorFldIndex];
-        //面积
-        if (smareaFldIndex > -1)
-          smareaFldVal = parseFloat(curFeature.fieldValues[smareaFldIndex]);
-
-        //方案面积 新增 20240717
-        if (FAAreaFldIndex > -1)
-          FAAreaFldVal = parseFloat(curFeature.fieldValues[FAAreaFldIndex]);
-        //方案计容面积
-        if (FAJRAreaFldIndex > -1)
-          FAJRAreaFldVal = parseFloat(curFeature.fieldValues[FAJRAreaFldIndex]);
-
-        //计容率
-        if (JRRationFldIndex > -1)
-          JRRationFldVal = parseFloat(curFeature.fieldValues[JRRationFldIndex]);
-        else JRRationFldVal = 0;
-        //计容面积
-        if (JRAreaFldIndex > -1)
-          JRAreaFldVal = parseFloat(curFeature.fieldValues[JRAreaFldIndex]);
-        else {
-          if (JRRationFldVal != null)
-            JRAreaFldVal = smareaFldVal * JRRationFldVal;
-          else JRAreaFldVal = smareaFldVal;
-        }
-        //楼层户数
-        if (houseFldIndex > -1)
-          houseFldVal = parseInt(curFeature.fieldValues[houseFldIndex]);
-        else houseFldVal = 0;
-        //当前楼层住户144平米以上住户数量字段
-        if (B144FldIndex > -1)
-          B144FldVal = parseInt(curFeature.fieldValues[B144FldIndex]);
-        else B144FldVal = 0;
-        //酒店类型 客房数
-        if (RoomFldIndex > -1)
-          RoomFldVal = parseInt(curFeature.fieldValues[RoomFldIndex]);
-        else RoomFldVal = 0;
-        //酒店类型 客房数
-        if (FTeacherFldIndex > -1)
-          FTeacherFldVal = parseInt(curFeature.fieldValues[FTeacherFldIndex]);
-        else FTeacherFldVal = 0;
-        //体育馆  音乐厅座位数量
-        if (SeatNumberFldIndex > -1)
-          SeatNumberFldVal = parseInt(
-            curFeature.fieldValues[SeatNumberFldIndex]
-          );
-        else SeatNumberFldVal = 0;
-        //游览码头设计游客容量
-        if (VisitorFldIndex > -1)
-          VisitorFldVal = parseInt(curFeature.fieldValues[VisitorFldIndex]);
-        else VisitorFldVal = 0;
-
-        if (BuidNoFldVal == "无" || BuidNoFldVal == "") {
-          BuidNoFldVal = "地下";
-        }
-        allItems.push({
-          landNo: LandNoFldVal,
-          buildNo: BuidNoFldVal,
-          yt: ClassFldVal,
-          floor: FloorFldVal,
-          area: smareaFldVal,
-          jrRation: JRRationFldVal,
-          jrArea: JRAreaFldVal,
-          faArea: FAAreaFldVal,
-          faJRArea: FAJRAreaFldVal,
-          house: houseFldVal,
-          b144: B144FldVal,
-          rooms: RoomFldVal,
-          teachers: FTeacherFldVal,
-          seats: SeatNumberFldVal,
-          visitor: VisitorFldVal,
-          jdcCount: 0,
-          fjdcCount: 0,
-        });
-      }
-      /** 是否计算车位 */
-      if (isJSPark != null && isJSPark == true)
-        allItems = that.jrCarNormal(allItems);
-      //遍历所有地块
-      for (var i = 0; i < landTextList.length; i++) {
-        var landNo = landTextList[i];
-        var landGroup = allItems.filter((t) => t.landNo == landNo);
-        var buidNoList = [];
-        var landjdcCount = 0;
-        var landfjdcCount = 0;
-        var fadxjzmj = 0.0;
-        var dxjzmj = 0.0;
-        for (var j = 0; j < landGroup.length; j++) {
-          var buildNo = landGroup[j].buildNo;
-          if (
-            landGroup[j].floor.toUpperCase().indexOf("B") > -1 ||
-            landGroup[j].floor.toUpperCase().indexOf("地下") > 1 ||
-            landGroup[j].yt.toUpperCase().indexOf("停车") > -1
-          ) {
-            fadxjzmj += landGroup[j].faArea;
-            dxjzmj += landGroup[j].area;
-          }
-          if (buidNoList.indexOf(buildNo) == -1) buidNoList.push(buildNo);
-          if (isJSPark != null && isJSPark == true) {
-            landjdcCount += landGroup[j].jdcCount;
-            landfjdcCount += landGroup[j].fjdcCount;
-          }
-        }
-        //地块的建筑面积和计容面积
-        var landMJ = 0.0;
-        var landJRMJ = 0.0;
-        ///方案面积 新增 20240717
-        var landFAMJ = 0.0;
-        var landFAJRMJ = 0.0;
-        //当前地块所有建筑
-        var curLandBuilds = [];
-        // {
-        //   //一栋
-        //   buildNo: '',
-        //   mj: 0,
-        //   jrmj: 0,
-        // famj:0, 20240717 新增
-        //   floorCount: 0,
-        //   floors: [
-        //     //单层
-        //     {
-        //        layer: '',
-        //        house: 0,
-        //        B144: 0,
-        //        rooms: '',
-        //        mj: 0.00,
-        //        jrmj: 0.00,
-        //       famj: 0.00, 20240717 新增
-        //     }
-        //   ]
-        // }
-        for (var k = 0; k < buidNoList.length; k++) {
-          //当前建筑
-          var curBuildNo = buidNoList[k];
-          var buildMJ = 0.0;
-          var buildJRMJ = 0.0;
-          var buildFAMJ = 0.0; //20240717 新增
-          var buildFAJRMJ = 0.0;
-          var floorList = [];
-          var ytList = [];
-          var buildItemList = landGroup.filter((t) => t.buildNo == curBuildNo);
-          for (var m = 0; m < buildItemList.length; m++) {
-            var curFloor = buildItemList[m].floor;
-            var yt = buildItemList[m].yt;
-            if (floorList.indexOf(curFloor) == -1) floorList.push(curFloor);
-            if (ytList.indexOf(yt) == -1) ytList.push(yt);
-            landMJ += buildItemList[m].area;
-            landJRMJ += buildItemList[m].jrArea;
-            landFAMJ += buildItemList[m].faArea;
-            landFAJRMJ += buildItemList[m].faJRArea;
-          }
-          var curfloors = [];
-          var singleBuild = {};
-          var floors = [];
-          var singleBuild = {};
-          var floors = [];
-          //当前建筑所有楼层
-          for (var n = 0; n < floorList.length; n++) {
-            var floorText = floorList[n];
-            var curFloors = landGroup.filter((t) => t.floor == floorText);
-            //当前楼层的面积、计容面积、房间数等
-            var mj = 0.0;
-            var jrmj = 0.0;
-            var famj = 0.0; //20240717 新增
-            var fajrmj = 0.0;
-            var rooms = 0;
-            // var layer = floorText;
-            var house = 0;
-            var B144 = 0;
-            curFloors.forEach((item, index) => {
-              mj += item.area;
-              jrmj += item.jrArea;
-              famj += item.faArea; //20240717 新增
-              fajrmj += item.faJRArea;
-              house += item.house;
-              B144 += item.b144;
-            });
-            var floorClass = [];
-            // classes: [{yt: '',  house: 0,B144: 0,rooms: '',mj: 0.00,jrmj: 0.00,}]
-            // 用途-----start
-            for (var t = 0; t < ytList.length; t++) {
-              var curyt = ytList[t];
-              var ytHouse = 0;
-              var ytB144 = 0;
-              var ytrooms = 0;
-              var ytytmj = 0.0;
-              var ytjrmj = 0.0;
-              var ytfamj = 0.0; //20240717
-              var ytfajrmj = 0.0;
-              var teachers = 0.0;
-              var seats = 0.0;
-              var visitor = 0.0;
-              var floorYTItems = curFloors.filter((t) => t.yt == curyt);
-              if (floorYTItems.length == 0) continue;
-              floorYTItems.forEach((tt, iindex) => {
-                ytB144 += tt.b144;
-                ytrooms += tt.rooms;
-                ytytmj += tt.area;
-                ytjrmj += tt.jrArea;
-                ytfamj += tt.faArea;
-                ytfajrmj += tt.faJRArea;
-                ytHouse += tt.house;
-                teachers += tt.teachers;
-                seats += tt.seats;
-                visitor += tt.visitor;
-              });
-              floorClass.push({
-                yt: curyt,
-                house: ytHouse,
-                B144: ytB144,
-                rooms: ytrooms,
-                mj: ytytmj,
-                jrmj: ytjrmj,
-                famj: ytfamj,
-                fajrmj: ytfajrmj,
-                teachers: teachers,
-                seats: seats,
-                visitor: visitor,
-              });
-            }
-            // 用途-----end
-            floors.push({
-              layer: floorText,
-              // class: yt,
-              house: house,
-              B144: B144,
-              rooms: rooms,
-              mj: mj,
-              jrmj: jrmj,
-              famj: famj,
-              fajrmj: fajrmj,
-              classes: floorClass,
-            });
-            buildMJ += mj;
-            buildJRMJ += jrmj;
-            buildFAMJ += famj;
-            buildFAJRMJ += fajrmj;
-          }
-          singleBuild = {
-            buildNo: curBuildNo,
-            mj: buildMJ,
-            jrmj: buildJRMJ,
-            famj: buildFAMJ,
-            fajrmj: buildFAJRMJ,
-            floorCount: floorList.length,
-            floors: floors,
-          };
-          curLandBuilds.push(singleBuild);
-        }
-        landList.push({
-          landNo: landNo,
-          buildNum: buidNoList.length,
-          mj: landMJ,
-          jrmj: landJRMJ,
-          famj: landFAMJ,
-          fadxjzmj: fadxjzmj,
-          dxjzmj: dxjzmj,
-          fajrmj: landFAJRMJ,
-          jdcCount: landjdcCount,
-          fjdcCount: landfjdcCount,
-          builds: curLandBuilds,
-        });
-      }
-      allItems = [];
-      landTextList = [];
-      return landList;
-    },
-    /**根据用途计算车位数量
-     * @param{Array} list:[
-     * { landNo:'',
-     * buildNo:'' ,
-     * class: '',
-     * floor: '',
-     * area:'' ,
-     * jrRation:0.00 ,
-     * jrArea: 0.00,
-     * house:0 ,
-     * b144: 0,
-     * rooms: 0,
-     * jdcCount:0.00,
-     * fjdcCount:0.00}
-     * ]
-     */
-    jrCarNormal(list) {
-      var normClasses = window.CarPark.classes;
-      if (list == null) return null;
-      var ytIndex = -1;
-      var b144 = 0;
-      var area = 0.0;
-      var house = 0;
-      var rooms = 0;
-      var needTCW = 0;
-      for (var i = 0; i < list.length; i++) {
-        var item = list[i];
-        var yt = item.yt;
-        var jdcCount = 0.0;
-        var fjdcCount = 0.0;
-        var curClass = normClasses.find((t) => t.Name.indexOf(yt) > -1);
-        if (curClass == null) {
-          list[i].jdcCount = jdcCount;
-          list[i].fjdcCount = fjdcCount;
-          continue;
-        }
-        var MotorRatio = 1;
-        var NoMotorRatio = 1;
-        var MotorRatio144 = 1;
-        var NoMotorRatio144 = 1;
-        var subClass = curClass.Children.find((t) => t.Name.indexOf(yt) > -1);
-        if (subClass != null) {
-          MotorRatio = subClass.MotorRatio;
-          NoMotorRatio = subClass.NoMotorRatio;
-          NoMotorRatio144 = subClass.NoMotorRatio44;
-          MotorRatio144 = subClass.MotorRatio144;
-        } else {
-          console.log(
-            "车位计算未找到建筑类型:" +
-              yt +
-              "相关的配置信息,请检查数据是否正确"
-          );
-          MotorRatio = curClass.MotorRatio;
-          NoMotorRatio = curClass.NoMotorRatio;
-          NoMotorRatio144 = curClass.MotorRatio;
-          MotorRatio144 = curClass.NoMotorRatio;
-        }
-        if (curClass.Name.indexOf("居住") > -1) {
-          if (subClass.Name.indexOf("城镇社区服务设施") > -1) {
-            jdcCount = (item.jrArea / 100) * MotorRatio;
-            fjdcCount = (item.jrArea / 100) * NoMotorRatio;
-          } else {
-            jdcCount =
-              item.b144 * MotorRatio144 +
-              (item.house - house.b144) * MotorRatio;
-            fjdcCount =
-              item.b144 * NoMotorRatio144 +
-              (item.house - house.b144) * NoMotorRatio;
-          }
-        } else if (curClass.Name.indexOf("商业") > -1) {
-          if (subClass.Name.indexOf("酒店") > -1) {
-            jdcCount = item.rooms * MotorRatio;
-            fjdcCount = item.rooms * NoMotorRatio;
-          } else {
-            jdcCount = (item.jrArea / 100) * MotorRatio;
-            fjdcCount = (item.jrArea / 100) * NoMotorRatio;
-          }
-        } else if (curClass.Name.indexOf("文化体育") > -1) {
-          if (
-            subClass.Name.indexOf("体育场馆") > -1 ||
-            subClass.Name.indexOf("音乐厅") > -1 ||
-            subClass.Name.indexOf("影剧院") > -1
-          ) {
-            jdcCount = (item.seats / 100) * MotorRatio;
-            fjdcCount = (item.seats / 100) * NoMotorRatio;
-          } else {
-            jdcCount = (item.jrArea / 100) * MotorRatio;
-            fjdcCount = (item.jrArea / 100) * NoMotorRatio;
-          }
-        } else if (curClass.Name.indexOf("景区") > -1) {
-          if (yt.indexOf("码头") > -1) {
-            jdcCount = (item.visitor * MotorRatio) / 1000;
-            fjdcCount = (item.visitor * NoMotorRatio) / 1000;
-            visitor;
-          } else {
-            jdcCount = (item.jrArea * MotorRatio) / 10000;
-            fjdcCount = (item.jrArea * NoMotorRatio) / 10000;
-          }
-        } else {
-          jdcCount = (item.jrArea / 100) * MotorRatio;
-          fjdcCount = (item.jrArea / 100) * NoMotorRatio;
-        }
-        list[i].jdcCount = jdcCount;
-        list[i].fjdcCount = fjdcCount;
-      }
-      return list;
-    },
     /**
      * 楼体拉伸
      */

部分文件因为文件数量过多而无法显示