| | |
| | | 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); |
| | | } |
| | |
| | | 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>"; |
| | | |
| | |
| | | |
| | | 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": "" }); |
| | | } |
| | | } |
| | | } |
| | |
| | | fs.Item(j).Tint.abgrColor = 0xff800080; |
| | | } |
| | | } catch (e) { |
| | | console.log(e); |
| | | //layers.splice(i, 1); |
| | | console.log(e); // layers.splice(i, 1); |
| | | } |
| | | } |
| | | |