¶Ô±ÈÐÂÎļþ |
| | |
| | | <!DOCTYPE html> |
| | | <html xmlns="http://www.w3.org/1999/xhtml"> |
| | | <head> |
| | | <title>空é´ç»è®¡</title> |
| | | <meta http-equiv="Expires" content="0" /> |
| | | <meta http-equiv="Cache" content="no-cache" /> |
| | | <meta http-equiv="Pragma" content="no-cache" /> |
| | | <meta http-equiv="Cache-control" content="no-cache" /> |
| | | <!--<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />--> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=9" /> |
| | | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| | | <script src="../Jquery/jquery.min.js"></script> |
| | | <script src="../ToolsCommon71.js"></script> |
| | | <link href="../Style.css" rel="StyleSheet" type="text/css" /> |
| | | <style> |
| | | html, body { |
| | | margin: 0; |
| | | padding: 0; |
| | | height: 100%; |
| | | width: 100%; |
| | | } |
| | | </style> |
| | | <script> |
| | | var gAsync = true; |
| | | var gDebug = false; |
| | | var groupName = "空é´ç»è®¡"; |
| | | var layerName = "JMD_1002"; |
| | | |
| | | var rs = { |
| | | count: 0, // è¦ç´ æ»ä¸ªæ° |
| | | |
| | | lineLen: 0, // 线对象é¿åº¦ |
| | | |
| | | polyArea: 0, // å¤è¾¹å½¢é¢ç§¯ |
| | | |
| | | volume: 0, // ä¸ç»´ä½ä½ç§¯ |
| | | |
| | | minHeight: 0, // ä¸ç»´ä½æä½é«åº¦ |
| | | |
| | | maxHeight: 0, // ä¸ç»´ä½æé«é«åº¦ |
| | | |
| | | reset: function () { |
| | | //SGWorld.ProjectTree.EnableRedraw(0); |
| | | var layers = getFeatureLayers(); |
| | | for (var i in layers) { |
| | | try{ |
| | | SGWorld.ProjectTree.GetObject(layers[i]).Refresh(); |
| | | } catch (e) { |
| | | console.log(e); |
| | | } |
| | | } |
| | | //SGWorld.ProjectTree.EnableRedraw(1); |
| | | |
| | | this.count = 0; |
| | | this.lineLen = 0; |
| | | this.polyArea = 0; |
| | | this.volume = 0; |
| | | this.minHeight = 0; |
| | | this.maxHeight = 0; |
| | | |
| | | return this; |
| | | }, |
| | | |
| | | format: function () { |
| | | this.lineLen = parseFloat(this.lineLen.toFixed(2)); |
| | | this.polyArea = parseFloat(this.polyArea.toFixed(2)); |
| | | this.volume = parseFloat(this.volume.toFixed(2)); |
| | | this.minHeight = parseFloat(this.minHeight.toFixed(2)); |
| | | this.maxHeight = parseFloat(this.maxHeight.toFixed(2)); |
| | | |
| | | return this; |
| | | }, |
| | | |
| | | setVal: function () { |
| | | $("#totalNum").html("" + this.count); |
| | | $("#lineLen").html("" + this.lineLen); |
| | | $("#polyArea").html("" + this.polyArea); |
| | | $("#volume").html("" + this.volume); |
| | | $("#minHeight").html("" + this.minHeight); |
| | | $("#maxHeight").html("" + this.maxHeight); |
| | | } |
| | | }; |
| | | |
| | | $(function () { |
| | | init(); |
| | | }); |
| | | |
| | | function init() { |
| | | window.ondragstart = function () { return false; } |
| | | } |
| | | |
| | | function getGroupId() { |
| | | var gid = SGWorld.ProjectTree.FindItem(groupName); |
| | | if (gid) return gid; |
| | | |
| | | return SGWorld.ProjectTree.CreateLockedGroup(groupName); |
| | | } |
| | | |
| | | function delGroup() { |
| | | try { |
| | | var gid = SGWorld.ProjectTree.FindItem(groupName); |
| | | if (gid) SGWorld.ProjectTree.DeleteItem(gid); |
| | | } |
| | | catch (e) { } |
| | | } |
| | | |
| | | function getFeatureLayers() { |
| | | var layers = []; |
| | | BuildObjectsList(SGWorld.ProjectTree.RootID, layers, 36); |
| | | |
| | | return layers; |
| | | } |
| | | |
| | | function clear(e) { |
| | | rs.reset(); |
| | | rs.setVal(); |
| | | delGroup(); |
| | | } |
| | | |
| | | function startQuery(e) { |
| | | this.clear(); |
| | | if (drawing.drawingEditMode != -1) { |
| | | drawing.abort(); |
| | | return; |
| | | } |
| | | |
| | | SGWorld.Window.ShowMessageBarText("æ Esc é®éåº"); |
| | | drawing.drawPolygon({ |
| | | style: { |
| | | lineColor: "#ff0000", |
| | | lineWidth: 3, |
| | | }, |
| | | altitudeMethod: 2, // use 2 of "OnTerrain" and 3 for "Absolute" (above mean sea level) |
| | | deleteWhenExit: false, // |
| | | parentGoupID: getGroupId(), |
| | | saveOnExit: true, // save the polyline/polygon when exiting the project. Default = false |
| | | onFinish: DrawPoly, |
| | | onAbort: ResetAsync |
| | | }); |
| | | } |
| | | |
| | | function DrawPoly(geometry, type, altitudeType) { |
| | | var layers = getFeatureLayers(); |
| | | 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; |
| | | |
| | | 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; |
| | | } |
| | | } |
| | | if (layer.GeometryType == 2) { // LGT_POLYGON |
| | | var flag = layerName == layer.TreeItem.Name; |
| | | for (var j = 0; j < fs.Count; j++) { |
| | | var f = fs.Item(j); |
| | | rs.polyArea += f.Geometry.Area; |
| | | |
| | | if (flag) { |
| | | var maxHeight = f.FeatureAttributes.GetFeatureAttribute("MaxHeight").Value; |
| | | var minHeight = f.FeatureAttributes.GetFeatureAttribute("MinHeight").Value; |
| | | var height = maxHeight - minHeight; |
| | | |
| | | rs.volume += f.Geometry.Area * height; |
| | | if (rs.maxHeight < height) rs.maxHeight = height; |
| | | if (!rs.minHeight || rs.minHeight > height) rs.minHeight = height; |
| | | } |
| | | } |
| | | } |
| | | for (var j = 0; j < fs.Count; j++) { |
| | | fs.Item(j).Tint.abgrColor = 0xff800080; |
| | | } |
| | | } catch (e) { |
| | | console.log(e); |
| | | //layers.splice(i, 1); |
| | | } |
| | | } |
| | | |
| | | rs.format(); |
| | | rs.setVal(); |
| | | } |
| | | |
| | | function ResetAsync(FirstTime, FromMouseInputMode) { |
| | | if (gAsync) |
| | | setTimeout(function () { Reset(FirstTime, FromMouseInputMode); }, 100); |
| | | else |
| | | Reset(FirstTime, FromMouseInputMode); |
| | | } |
| | | |
| | | function Reset(FirstTime, FromMouseInputMode) { |
| | | try { |
| | | if (gPolyObj != null) SGWorld.Creator.DeleteObject(gPolyObj.ID); |
| | | } catch (e) { } |
| | | |
| | | gPolyObj = null; |
| | | SGWorld.ProjectTree.EnableRedraw(1); |
| | | SGWorld.Window.HideMessageBarText(); |
| | | bInEdit = false; |
| | | |
| | | if (FirstTime != 1 && FromMouseInputMode == 0) SGWorld.Window.SetInputMode(0); |
| | | } |
| | | </script> |
| | | </head> |
| | | <body class="hideUntillTranslated"> |
| | | <table style="width: 100%; border: 0;" cellspacing="0" cellpadding="2"> |
| | | <tr> |
| | | <td class="ToolTopArea" id="TopAreaTD" width="100%" valign="middle"> |
| | | <table border="0" width="100%" cellspacing="0" cellpadding="0"> |
| | | <tr> |
| | | <td width="55px"> |
| | | <img style="margin-left: 5px;" src="img/ToolIcon.png" alt="" /></td> |
| | | <td id="TitleTD" align="center" class="s12w i18n">空é´ç»è®¡</td> |
| | | <td align="right" id="CloseHelpTd"> |
| | | <img style="margin-right: 5px; cursor: pointer;" alt="" src="../CommonImg/help.png" border="0" class="i18n" alt="help" title="帮å©" onclick="DisplayHelpPopup6(SGLang.i18nFile('help.html'),SGLang.i18n('help'))" /></td> |
| | | </tr> |
| | | </table> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="ToolTopSeperator"></td> |
| | | </tr> |
| | | <tr class="s8"> |
| | | <td> |
| | | <table class="PropertiesSheet" cellspacing="0" cellpadding="2"> |
| | | <tr class='TableOtherLine'> |
| | | <td class="s8b"> |
| | | <label for="Mode" class="i18n">è¦ç´ æ»ä¸ªæ°</label> |
| | | </td> |
| | | <td> <span id="totalNum">0</span> 个 |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="s8b"> |
| | | <label for="Mode" class="i18n">线对象é¿åº¦</label> |
| | | </td> |
| | | <td> <span id="lineLen">0</span> ç±³ |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="s8b"> |
| | | <label for="Mode" class="i18n">å¤è¾¹å½¢é¢ç§¯</label> |
| | | </td> |
| | | <td> <span id="polyArea">0</span> å¹³æ¹ç±³ |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="s8b"> |
| | | <label for="Mode" class="i18n">ä¸ç»´ä½ä½ç§¯</label> |
| | | </td> |
| | | <td> <span id="volume">0</span> ç«æ¹ç±³ |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="s8b"> |
| | | <label for="Mode" class="i18n">ä¸ç»´ä½é«åº¦</label> |
| | | </td> |
| | | <td> æä½ <span id="minHeight">0</span> ç±³ï¼æé« <span id="maxHeight">0</span> ç±³ |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </td> |
| | | </tr> |
| | | <tr class="s8"> |
| | | <td align="center" class="ToolButtonsArea"> |
| | | <div id="SurfaceDiv"> |
| | | <button id="clipboardButton" class="MenuButton" onclick="clear(this);" style="cursor: pointer;"> |
| | | <img src="img/delete.png" /><br /> |
| | | <span class="i18n">æ¸
é¤</span></button> |
| | | <button id="DrawPlaneBtn" class="MenuButton MenuButtonLast" onclick="startQuery(this);" style="cursor: pointer;"> |
| | | <img src="../commonImg/polygon.png" /><br /> |
| | | <span class="i18n">å¼å§ç»è®¡</span></button> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <object id="SGWorld" style="display:none" classid="CLSID:3a4f9199-65a8-11d5-85c1-0001023952c1"></object> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </body> |
| | | </html> |