管道基础大数据平台系统开发-【CS】-ExportMap
13693261870
2024-09-27 2b8aed5af4cd96a6aafc6fdb7fd0b7e9352ed498
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);
        }
      }