From 2b8aed5af4cd96a6aafc6fdb7fd0b7e9352ed498 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期五, 27 九月 2024 15:54:23 +0800
Subject: [PATCH] 更新空间统计功能

---
 TEWin/Resources/SpaceStatistics/SpaceStatistics.html |   30 ++++++++++++++++++------------
 1 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/TEWin/Resources/SpaceStatistics/SpaceStatistics.html b/TEWin/Resources/SpaceStatistics/SpaceStatistics.html
index 03857ca..01e5258 100644
--- a/TEWin/Resources/SpaceStatistics/SpaceStatistics.html
+++ b/TEWin/Resources/SpaceStatistics/SpaceStatistics.html
@@ -44,9 +44,13 @@
       reset: function () {
         //SGWorld.ProjectTree.EnableRedraw(0);
         var layers = getFeatureLayers();
+        var hField = $.trim($("#hField").val());
         for (var i in layers) {
           try {
             SGWorld.ProjectTree.GetObject(layers[i]).Refresh();
+            //var layer = SGWorld.ProjectTree.GetObject(layers[i]);
+            //var flag = layer.DataSourceInfo.Attributes.IsAttributeExist(hField);
+            //if (layer.GeometryType == 2 && flag) layer.Refresh();
           } catch (e) {
             console.log(e);
           }
@@ -88,9 +92,9 @@
         if (!this.data || !this.data.length) return "";
 
         var html = "<table class='PropertiesSheet' cellspacing='0' cellpadding='2' style='max-height: 256px; overflow: auto'>";
-        html += "<tr><td>搴忓彿</td><td>鍥惧眰鍚�</td><td>闈㈢Н</td><td>楂樺害</td><td>浣撶Н</td></tr>";
+        html += "<tr><td>搴忓彿</td><td>鍥惧眰鍚�</td><td>绾块暱</td><td>闈㈢Н</td><td>楂樺害</td><td>浣撶Н</td></tr>";
         for (var i = 0, c = this.data.length; i < c; i++) {
-          html += "<tr><td>" + (i + 1) + "</td><td>" + this.data[i].name + "</td><td>" + this.data[i].area + "</td><td>" + this.data[i].height + "</td><td>" + this.data[i].vol + "</td></tr>";
+          html += "<tr><td>" + (i + 1) + "</td><td>" + this.data[i].name + "</td><td>" + this.data[i].len + "</td><td>" + this.data[i].area + "</td><td>" + this.data[i].height + "</td><td>" + this.data[i].vol + "</td></tr>";
         }
         html += "</table>";
 
@@ -158,35 +162,38 @@
 
     function DrawPoly(geometry, type, altitudeType) {
       var layers = getFeatureLayers();
+      var hField = $.trim($("#hField").val());
       for (var i in layers) {
         try {
           var layer = SGWorld.ProjectTree.GetObject(layers[i]);
           var fs = layer.ExecuteSpatialQuery(geometry, 1); // 1-IT_INTERSECT, 2-IT_WITHIN
           if (fs.Count == 0) continue;
 
+          var fName = layer.TreeItem.Name;
           rs.count += fs.Count;
+
           if (layer.GeometryType == 1) { // LGT_POLYLINE
             for (var j = 0; j < fs.Count; j++) {
               var f = fs.Item(j);
               rs.lineLen += f.Geometry.Length;
+              rs.data.push({ "name": fName, "len": f.Geometry.Length.toFixed(2), "area": "", "height": "", "vol": "" });
             }
           }
           if (layer.GeometryType == 2) { // LGT_POLYGON
-            var hField = $.trim($("#hField").val()), fName = layer.TreeItem.Name;
+            var flag = layer.DataSourceInfo.Attributes.IsAttributeExist(hField);
             for (var j = 0; j < fs.Count; j++) {
               var f = fs.Item(j);
               rs.polyArea += f.Geometry.Area;
-
-              try {
+              if (flag) {
                 var height = parseFloat(f.FeatureAttributes.GetFeatureAttribute(hField).Value);
-
-                rs.volume += f.Geometry.Area * height;
+                var volume = f.Geometry.Area * height;
+                rs.volume += volume;
                 if (rs.maxHeight < height) rs.maxHeight = height;
                 if (!rs.minHeight || rs.minHeight > height) rs.minHeight = height;
 
-                rs.data.push({ "name": fName, "area": f.Geometry.Area.toFixed(2), "height": height.toFixed(2), "vol": (f.Geometry.Area * height).toFixed(2) });
-              } catch (ex) {
-                console.log(ex);
+                rs.data.push({ "name": fName, "len": "", "area": f.Geometry.Area.toFixed(2), "height": height.toFixed(2), "vol": volume.toFixed(2) });
+              } else {
+                rs.data.push({ "name": fName, "len": "", "area": f.Geometry.Area.toFixed(2), "height": "", "vol": "" });
               }
             }
           }
@@ -194,8 +201,7 @@
             fs.Item(j).Tint.abgrColor = 0xff800080;
           }
         } catch (e) {
-          console.log(e);
-          //layers.splice(i, 1);
+          console.log(e); // layers.splice(i, 1);
         }
       }
 

--
Gitblit v1.9.3