<!DOCTYPE html>
|
<html lang="en">
|
|
<head>
|
<meta charset="UTF-8">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<title>Document</title>
|
<!-- <script src="./../iS/iquery-1.8.2.min.is"></script> -->
|
<script src="../JS/jquery-1.10.2.min.js"></script>
|
<script src="../JS/VariableChange.js"></script>
|
<script src="../JS/turf.min.js"></script>
|
<script src="../JS/DrawPolygon.js"></script>
|
<script src="../JS/CalcVol.js"></script>
|
<script src="../JS/volume.js"></script>
|
<style>
|
html,
|
body {
|
height: 100%;
|
width: 100%;
|
margin: 0;
|
overflow: hidden;
|
padding: 0;
|
background: rgba(0, 0, 0, 1);
|
}
|
|
#rightMenu {
|
height: 100%;
|
width: 100%;
|
}
|
|
.image {
|
height: 44px;
|
width: 44px;
|
}
|
|
.right_div {
|
padding-left: 21px;
|
padding-top: 13px;
|
padding-bottom: 13px;
|
padding-right: 21px;
|
width: 98px;
|
text-align: center;
|
font-weight: bolder;
|
color: white;
|
}
|
|
.right_div:hover {
|
background-color: rgba(255, 255, 255, 0.2);
|
}
|
</style>
|
</head>
|
|
<body>
|
<div id="rightMenu">
|
<div class="right_div" onclick="showrightmenu(1)">
|
<img src="./../Image/right/测量 (1).png" class="image" alt=""><br>
|
<span>测量工具</span>
|
</div>
|
<div class="right_div" onclick="HierarchicalDiscrete()">
|
<img src="./../Image/right/圆角矩形 6 拷贝 4.png" class="image" alt=""><br>
|
<span>分层离散</span>
|
</div>
|
<div class="right_div" onclick="showrightmenu(3)">
|
<img src="./../Image/right/矩形 16 拷贝 9.png" class="image" alt=""><br>
|
<span>剖切分析</span>
|
</div>
|
<div class="right_div" onclick="showrightpolygonmenu()">
|
<img src="./../Image/right/图层 13.png" class="image" alt=""><br>
|
<span>储量计算</span>
|
</div>
|
<div class="right_div" onclick="showrightmenu(5)">
|
<img src="./../Image/right/矿体.png" class="image" alt=""><br>
|
<span>数据导入</span>
|
</div>
|
<div class="right_div" onclick="showrightmenu(6)">
|
<img src="./../Image/right/zuankongchaxun.png" class="image" alt=""><br>
|
<span>钻孔查询</span>
|
</div>
|
</div>
|
|
<script>
|
var sgworld = window.external.createSgworld();
|
var RS6 = 0;
|
var RS1 = 0;
|
var elevation = null; //高程数据
|
var elGroup = null;
|
var volume_val_std = [];
|
var obvar = null;
|
var pPolygon = null; //多边形对象
|
var tPolyLine = null;
|
var bluk = 0;
|
var el_group = [];
|
var Geo_Polygon = null;
|
var lonlat_heighter = 0;
|
var poly_bulk = 0;
|
|
DrawPolygon.SG = sgworld;
|
|
//储量计算
|
function showrightpolygonmenu() {
|
DrawPolygon.delGroup();
|
var polygon_Geometry = DrawPolygon.start(function (polygon) {
|
if (polygon) {
|
var height = prompt("请输入标高", 350); //第二个
|
if (height == null || isNaN(height) || height < 1 || height > 1000) {
|
alert("您输入的标高异常!");
|
return;
|
}
|
|
var g = polygon.Geometry.Clone();
|
var ring = polygon.Geometry.ExteriorRing.Wks.ExportToWKT()
|
var gid = sgworld.ProjectTree.FindItem("图形绘制");
|
if (!gid) {
|
gid = sgworld.ProjectTree.CreateLockedGroup("图形绘制", SG.ProjectTree.RootID);
|
}
|
lonlat_heighter = height;
|
var deep = polygon.Position.Altitude - parseFloat(height);
|
$.ajax({
|
type: "GET",
|
url: "../Calc/GetPoints?type=02&wkt=" + ring,
|
dataType: "json",
|
success: function (rs) {
|
if (!rs) {
|
alert("不在矿体范围内!");
|
return;
|
}
|
|
createTerraModifier(g, deep);
|
calcVoumes(rs, deep);
|
}
|
});
|
}
|
});
|
}
|
|
function createTerraModifier(geo, deep) {
|
var gid = DrawPolygon.getGid();
|
var terra = sgworld.Creator.CreateTerrainModifier(geo, 0, true, 0, gid, "储量计算");
|
terra.Position.Altitude = deep;
|
}
|
|
function calcVoumes(rs, deep) {
|
var all = 0;
|
|
for (var i = 0, c = rs.length; i < c; i++) {
|
var up = [], down = [];
|
var flag = getPoints(rs[i].Points, up, down, deep);
|
if (flag) {
|
all += parseInt(CalcVol.init(up, down) * 10);
|
}
|
}
|
all = all / 10;
|
|
// alert("总挖方:" + all + " 立方米," + (all * 2.75).toFixed(1) + " 吨。");
|
var t = all * 2.75;
|
var str = (all > 10000 ? (all / 10000).toFixed(2) + "万" : all) + " 立方米," + (t > 10000 ? (t / 10000).toFixed(2) + "万" : t.toFixed(1)) + " 吨。";
|
|
var p2 = { a1: lonlat_heighter, a2: (t / 10000).toFixed(2) };
|
var s2 = JSON.stringify(p2);
|
sessionStorage.setItem("p2", s2); //以字符串格式存储信息
|
setTimeout(function () {
|
window.external.loadMainWebFunc('showPolygonVolum', "r1");
|
},500)
|
}
|
|
function getPoints(points, up, down, deep) {
|
for (var i = 0, c = points.length; i < c; i++) {
|
var p = points[i];
|
if (deep > p.Z1) {
|
return false;
|
}
|
|
up.push({ x: p.X, y: p.Y, z: p.Z1 });
|
down.push({ x: p.X, y: p.Y, z: deep < p.Z2 ? p.Z2 : deep });
|
}
|
|
return true;
|
}
|
|
function showrightmenu (rest) {
|
if (rest == 1) {
|
if (RS1 == 0) {
|
window.external.loadMainWebFunc('showrighttool', 'r1');
|
RS1 = 1
|
} else {
|
window.external.closeDialog("测量工具");
|
RS1 = 0;
|
}
|
} else if (rest == 2) {
|
|
} else if (rest == 3) {
|
CuttingAnalysis();
|
} else if (rest == 4) {
|
|
|
} else if (rest == 5) {
|
window.external.loadMainWebFunc('showrighttool', 'r5');
|
} else if (rest == 6) {
|
sessionStorage.removeItem("obvar");
|
if (RS6 == 0) {
|
window.external.loadMainWebFunc('showrighttool', 'r6');
|
sgworld.AttachEvent("OnLButtonClicked", RotorSearch);
|
RS6 = 1;
|
sgworld.Command.Execute(1027, 0)
|
} else if (RS6 == 1) {
|
window.external.closeDialog("转孔数据展示")
|
RS6 = 0;
|
sgworld.DetachEvent("OnLButtonClicked", RotorSearch);
|
sgworld.Command.Execute(1027, 0);
|
|
for (var i = 0; i < el_group.length; i++) {
|
var el_id = sgworld.ProjectTree.FindItem("test");
|
sgworld.ProjectTree.DeleteItem(el_id);
|
}
|
el_group = [];
|
}
|
}
|
}
|
|
var MX_URL = "http://127.0.0.1:8088/"
|
|
function ajaxget (lon, lat) {
|
$.ajax({
|
type: "GET",
|
url: MX_URL + "gisserver/rest/services/THdemhebing9/THdemhebing9/ImageServer/identify?geometry=" + lon + "," + lat + "&geometryType=esriGeometryPoint",
|
dataType: "json",
|
success: function (res) {
|
var val_data = res.value.split(",");
|
obvar = lon + "," + lat + "," + res.value;
|
sessionStorage.setItem("obvar", obvar);
|
for (var i in val_data) {
|
if (i == 7) {
|
cFillColor = sgworld.Creator.CreateColor(255, 0, 0, 1);
|
} else if (i == 6) {
|
cFillColor = sgworld.Creator.CreateColor(255, 165, 0, 1);
|
} else if (i == 5) {
|
cFillColor = sgworld.Creator.CreateColor(255, 255, 0, 1);
|
} else if (i == 4) {
|
cFillColor = sgworld.Creator.CreateColor(0, 255, 0, 1);
|
} else if (i == 3) {
|
cFillColor = sgworld.Creator.CreateColor(0, 127, 255, 1);
|
} else if (i == 2) {
|
cFillColor = sgworld.Creator.CreateColor(0, 0, 255, 1);
|
} else if (i == 1) {
|
cFillColor = sgworld.Creator.CreateColor(139, 0, 255, 1);
|
} else {
|
cFillColor = sgworld.Creator.CreateColor(255, 0, 0, 1);
|
}
|
var position_Height = parseFloat(val_data[i]);
|
var position = sgworld.Creator.CreatePosition(lon, lat, position_Height);
|
position.AltitudeType = 3;
|
var height = parseFloat(elevation) - parseFloat(position_Height)
|
var attributt = "test_" + i;
|
sgworld.Creator.CreateCylinder(position, 10, height, cFillColor, cFillColor, 20, elGroup, attributt);
|
elevation = position_Height;
|
}
|
|
},
|
error: function (result) {
|
errorToast(result.msg);
|
}
|
});
|
|
}
|
|
function RotorSearch (Flags, X, Y, pbHandled) {
|
var CursorCoord = sgworld.Window.PixelToWorld(X, Y);
|
var lonnger = parseFloat(CursorCoord.Position.x);
|
var latter = parseFloat(CursorCoord.Position.y);
|
var pWorldPointInfo = sgworld.Terrain.GetGroundHeightInfo(lonnger, latter, 2, 1);
|
elevation = pWorldPointInfo.Position.Altitude;
|
var _groupname = "test";
|
elGroup = sgworld.ProjectTree.CreateGroup(_groupname, "")
|
el_group.push(elGroup)
|
|
ajaxget(lonnger, latter);
|
}
|
|
function colorchange (result) {
|
var color;
|
|
return color;
|
}
|
|
//分层离散
|
var Hierarch_flag = 1;
|
|
function HierarchicalDiscrete () {
|
|
var _id_xpl = sgworld.ProjectTree.FindItem("腾辉矿山\\地质体");
|
|
var _id_current = sgworld.ProjectTree.GetNextItem(_id_xpl, 11);
|
BuildTreeRecursive(_id_current, 13)
|
|
}
|
|
function BuildTreeRecursive (current, indent) {
|
if (Hierarch_flag == 1) {
|
Hierarch_flag = 2;
|
} else {
|
Hierarch_flag = 1;
|
}
|
var flag = 100
|
var i = 0;
|
while (current != null && current != undefined) {
|
var volume_val = sgworld.ProjectTree.GetObject(current).Position.Altitude;
|
if (Hierarch_flag == 2) {
|
sgworld.ProjectTree.GetObject(current).Position.Altitude = volume_val + (flag + (i * 200));
|
} else {
|
sgworld.ProjectTree.GetObject(current).Position.Altitude = volume_val - (flag + (i * 200));
|
}
|
i++;
|
current = sgworld.ProjectTree.GetNextItem(current, indent);
|
}
|
}
|
|
function RecoverTreeRecursive (current, indent) {
|
var flag = 200;
|
var i = 0;
|
while (current != null) {
|
var volume_val = sgworld.ProjectTree.GetObject(current).Position.Altitude;
|
sgworld.ProjectTree.GetObject(current).Position.Altitude = volume_val - flag + (i * 10);
|
i++;
|
current = sgworld.ProjectTree.GetNextItem(current, indent);
|
}
|
|
}
|
|
//剖面分析
|
function CuttingAnalysis () {
|
window.external.loadMainWebFunc('showbottomtool', 'bx2');
|
}
|
|
function closemeasure () {
|
window.external.closeDialog("测量工具");
|
}
|
</script>
|
</body>
|
|
</html>
|