Commit 4fbcce8dd59e13a300c20a33ab6b0f4a8aeff1ca
1 parent
8a873aff
update...
Showing
2 changed files
with
19 additions
and
4 deletions
src/main/resources/static/pages/real/js/map.js
| ... | ... | @@ -81,6 +81,7 @@ var gb_real_gps_map = (function () { |
| 81 | 81 | |
| 82 | 82 | var gps_marker_arr = {}, topMarker; |
| 83 | 83 | var renderGps = function (arr) { |
| 84 | + var devices = []; | |
| 84 | 85 | var gps, m, w; |
| 85 | 86 | for (var i = 0, len = arr.length; i < len; i++) { |
| 86 | 87 | gps = arr[i]; |
| ... | ... | @@ -103,6 +104,17 @@ var gb_real_gps_map = (function () { |
| 103 | 104 | if (m.infoWindow.isOpen()) |
| 104 | 105 | bdOpenWindow(m); |
| 105 | 106 | } |
| 107 | + | |
| 108 | + devices.push(gps.deviceId); | |
| 109 | + } | |
| 110 | + | |
| 111 | + //删除多余的Marker (改变走向的) | |
| 112 | + for (var k in gps_marker_arr) { | |
| 113 | + if (devices.indexOf(k) == -1) { | |
| 114 | + map.removeOverlay(gps_marker_arr[k]); | |
| 115 | + gps_marker_arr[k] = null; | |
| 116 | + delete gps_marker_arr[k]; | |
| 117 | + } | |
| 106 | 118 | } |
| 107 | 119 | }; |
| 108 | 120 | |
| ... | ... | @@ -227,7 +239,7 @@ var gb_real_gps_map = (function () { |
| 227 | 239 | */ |
| 228 | 240 | var focus = function (device) { |
| 229 | 241 | var m = gps_marker_arr[device]; |
| 230 | - if(m){ | |
| 242 | + if (m) { | |
| 231 | 243 | map.setCenter(m.getPosition()); |
| 232 | 244 | bdOpenWindow(m); |
| 233 | 245 | } | ... | ... |
src/main/resources/static/pages/real/js/svg.js
| ... | ... | @@ -138,14 +138,14 @@ var gb_real_gps_svg = (function () { |
| 138 | 138 | draw_gps(arr); |
| 139 | 139 | |
| 140 | 140 | //渲染表格 |
| 141 | - if($('.data_list', wrap).is(":visible")){ | |
| 141 | + if ($('.data_list', wrap).is(":visible")) { | |
| 142 | 142 | var htmlStr = template('real_gps_table_list-temp', rs); |
| 143 | 143 | $('.data_list table tbody', wrap).html(htmlStr); |
| 144 | 144 | $('.data_list', wrap).perfectScrollbar({suppressScrollX: true}); |
| 145 | 145 | } |
| 146 | 146 | |
| 147 | 147 | //渲染地图 |
| 148 | - if($('.map_wrap', wrap).is(":visible")) { | |
| 148 | + if ($('.map_wrap', wrap).is(":visible")) { | |
| 149 | 149 | gb_real_gps_map.renderGps(arr); |
| 150 | 150 | } |
| 151 | 151 | }; |
| ... | ... | @@ -201,12 +201,15 @@ var gb_real_gps_svg = (function () { |
| 201 | 201 | rects.enter().append('rect').attr('_id', function (d) { |
| 202 | 202 | return 'rct_' + d.deviceId; |
| 203 | 203 | }); |
| 204 | + rects.exit().remove(); | |
| 204 | 205 | |
| 205 | 206 | gps_update_point(rects, svg); |
| 206 | 207 | |
| 207 | 208 | //text |
| 208 | 209 | var ts = gps_cont.selectAll('text').data(data, gps_key); |
| 209 | - ts.enter().append('text').attr('_id', tx_id); | |
| 210 | + ts.enter().append('text') | |
| 211 | + .attr('_id', tx_id); | |
| 212 | + ts.exit().remove(); | |
| 210 | 213 | ts.text(g_text) |
| 211 | 214 | gps_update_point(ts, svg); |
| 212 | 215 | } | ... | ... |