3.7
fxl
2023-03-07 632a18ee7c83441a6036b90577424d2daad8d19c
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
        <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
            <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
                <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, maximum-scale=1, shrink-to-fit=no">
                    <title>地图展示</title>
                    <link rel="icon" type="image/x-icon" href="/hxzkoa/hxzk/assets/img/favicon.ico" />
 
                    <!-- BEGIN GLOBAL MANDATORY STYLES -->
                    <script src="/hxzkoa/hxzk/fengmap/js/fengmap.map.min.js"></script>
                    <link rel="stylesheet" href="/hxzkoa/hxzk/fengmap/css/fengmap.css">
                    <script src="/hxzkoa/hxzk/assets/js/libs/jquery-3.1.1.min.js"></script>
 
                    <style>
                    </style>
                </head>
 
                <body>
                    <div id="mapId" style="width:100%;height: 100%;cursor: pointer;"></div>
                </body>
 
                <script>
                    //常用方法
                    function getRealPositionsanwei() {
                        var realposition = [];
                        $.ajax({
                            async: false,
                            type: 'POST',
                            url: "/hxzkoa/getRealPositionsan2.do",
                            dataType: 'json',
                            success: function (data) {
                                for (var i = 0; i < data.length; i++) {
                                    //playMark[id,name,power,life,x,y,time]
                                    realposition.push([data[i].tagid, data[i].name, data[i].power, data[i].life, data[i].posx, data[i].posy, data[i].time, data[i].fence == 1 || data[i].sos == 1, data[i].sousuo, data[i].shipin, data[i].inkaoqing, data[i].jiao])
                                }
                            },
                        });
                        return realposition
                    };
 
                    function getSystemSetting() {
                        var sysset = [];
                        $.ajax({
                            async: false,
                            type: 'POST',
                            url: "/hxzkoa/getSysSetting_list.do",
                            dataType: 'json',
                            success: function (data) {
                                sysset = data;
                            },
                        });
                        return sysset;
                    };
 
                    function attributeCount(obj) {
                        var count = 0;
                        for (var i in obj) {
                            if (obj.hasOwnProperty(i)) {  // 建议加上判断,如果没有扩展对象属性可以不加
                                count++;
                            }
                        }
                        return count;
                    }
                </script>
 
                <script>
                    var biaoqians = new Object();
                    var oo = 0;
                    var bm_sysSetting = getSystemSetting();
                    var bm_offView = bm_sysSetting[0].offView;//是否离线不显示图标
                    var bm_kaoqing = bm_sysSetting[0].diskaoqing;//是否出考勤区域消失
 
                    var origon = [
                        { x: 8389, y: 5668 },
                        { x: 8997, y: 5668 },
                        { x: 8389, y: 4837 }
                    ];
 
                    var target = [
                        { x: 13018857.7817, y: 4724768.4396 }, //原点 x最小y最小
                        { x: 13018864.8382, y: 4724768.4396 }, //x最大y最小
                        { x: 13018857.8432, y: 4724788.3862 }  //x最小y最大 
                    ];
 
                    var coordsTransformer = new fengmap.FMCoordsTransformer({ origon: origon, target: target });
 
                    var map;
                    var options = {
                        container: document.getElementById("mapId"),
                        appName: 'map1',
                        key: '09facc4ee52d1844bc1e561dad5abf59',
                        mapID: '1589827030481551361',
                        themeID: '4008',
                        minTiltAngle: 0,
                        mapZoom: 19.5,
                    }
 
                    map = new fengmap.FMMap(options);
 
                    function fn() {
                        var personlist1 = getRealPositionsanwei();
                        var personlist = [];
                        if (personlist1.length != 0) {
                            for (var i = 0; i < personlist1.length; i++) {
                                if (((bm_offView == '1' && personlist1[i][3] == '1') || (bm_offView == '0')) && ((bm_kaoqing == '1' && personlist1[i][10] == '1') || (bm_kaoqing == '0'))) {
                                    personlist.push(personlist1[i]);
                                }
                                if ((bm_offView == '1' && personlist1[i][3] != '1') || (bm_kaoqing == '1' && personlist1[i][10] != '1')) {
                                    if (biaoqians[personlist1[i][0]] != "" && biaoqians[personlist1[i][0]] != 0 && biaoqians[personlist1[i][0]] != null) {
                                        biaoqians[personlist1[i][0]].remove();
                                        delete biaoqians[personlist1[i][0]];
                                    }
                                }
                            }
                            if (attributeCount(biaoqians) != personlist.length) {
                                diaoyong1();
                            } else {
                                diaoyong2();
                            }
                        }
 
                        function diaoyong1() {
                            for (var i = 0; i < personlist.length; i++) {
                                if (biaoqians[personlist[i][0]] == "" || biaoqians[personlist[i][0]] == 0 || biaoqians[personlist[i][0]] == null) {
                                    var xy = coordsTransformer.transform({ x: personlist[i][4], y: personlist[i][5] });
                                    var fmarker = new fengmap.FMDynamicModel({
                                        url: '../fengmap/data/person.glb',
                                        x: xy.x,
                                        y: xy.y,
                                        scale: 3,
                                        height: 0,
                                        heading: 0,
                                        callback: function (marker) {
                                            fmarker.startAction(fmarker.getActionNames()[0]);
                                        }
                                    })
 
                                    var level = map.getLevel();
                                    var floor = map.getFloor(level);
                                    fmarker.addTo(floor);
                                    biaoqians[personlist[i][0]] = fmarker;
                                }
                            }
                        }
 
                        function diaoyong2() {
                            for (var i = 0; i < personlist.length; i++) {
                                var xy = coordsTransformer.transform({ x: personlist[i][4], y: personlist[i][5] });
                                biaoqians[personlist[i][0]].moveTo({
                                    x: xy.x,
                                    y: xy.y,
                                    animate: true,
                                })
                                if (personlist[i][11] != 180.0) {
                                    biaoqians[personlist[i][0]].rotateTo({
                                        heading: personlist[i][11],
                                        animate: true,
                                    })
                                }
                            }
                        }
                    }
                </script>
 
                </html>