1
Surpriseplus
2022-10-14 6d536dea3cec157947947aa075bebde4305f29b9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>CalcVol</title>
    <script src="JS/jquery-1.10.2.min.js"></script>
    <script src="JS/turf.min.js"></script>
    <script src="JS/CalcVol.js"></script>
    <script>
        $(function () {
            initCalc();
        });
 
        function initCalc() {
            var height = prompt("请输入标高", 350); //第二个
            if (height == null || isNaN(height) || height < 1 || height > 1000) {
                alert("您输入的标高异常!");
                return;
            }
 
            var deep = 265 - parseFloat(height);
            $.ajax({
                type: "GET",
                url: "http://localhost/HBKCY//Calc/GetPoints?type=02&wkt=LINEARRING Z (115.3110749345563164 39.2994417007271011 267.5901489257812500, 115.3113507016222172 39.2989956631745017 274.2110900878906250, 115.3107335061653913 39.2991306602491619 259.2471008300781250, 115.3110749345563164 39.2994417007271011 267.5901489257812500)",
                dataType: "json",
                success: function (rs) {
                    calcVoumes(rs, deep);
                }
            });
        }
 
        function calcVoumes(rs, deep) {
            debugger
            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;
 
            var str = "总挖方:" + all + " 立方米," + (all * 2.75).toFixed(1) + " 吨。";
            alert(str);
        }
 
        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 test() {
            //var up = [
            //    { x: 115.31241575647351, y: 39.300654653220789, z: 327.09518432617188 },
            //    { x: 115.31238108677418, y: 39.300655044095038, z: 326.3094482421875 },
            //    { x: 115.31238159098577, y: 39.300682041626892, z: 327.17593383789063 }
            //];
            //var down = [
            //    { x: 115.31241575647351, y: 39.300654653220789, z: 210.12478637695313 },
            //    { x: 115.31238108677418, y: 39.300655044095038, z: 206.19247436523438 },
            //    { x: 115.31238159098577, y: 39.300682041626892, z: 206.93504333496094 }
            //];
            var up = [
                { x: 115.30886283, y: 39.30063138, z: 327 },
                { x: 115.30893785, y: 39.30056263, z: 327 },
                { x: 115.308849, y: 39.30050415, z: 327 }
            ];
            var down = [
                { x: 115.30886283, y: 39.30063138, z: 326 },
                { x: 115.30893785, y: 39.30056263, z: 326 },
                { x: 115.308849, y: 39.30050415, z: 326 }
            ];
            var v = CalcVol.init(up, down);
 
            alert(v);
        }
    </script>
</head>
<body>
 
</body>
</html>