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,6 +81,7 @@ var gb_real_gps_map = (function () { | ||
| 81 | 81 | ||
| 82 | var gps_marker_arr = {}, topMarker; | 82 | var gps_marker_arr = {}, topMarker; |
| 83 | var renderGps = function (arr) { | 83 | var renderGps = function (arr) { |
| 84 | + var devices = []; | ||
| 84 | var gps, m, w; | 85 | var gps, m, w; |
| 85 | for (var i = 0, len = arr.length; i < len; i++) { | 86 | for (var i = 0, len = arr.length; i < len; i++) { |
| 86 | gps = arr[i]; | 87 | gps = arr[i]; |
| @@ -103,6 +104,17 @@ var gb_real_gps_map = (function () { | @@ -103,6 +104,17 @@ var gb_real_gps_map = (function () { | ||
| 103 | if (m.infoWindow.isOpen()) | 104 | if (m.infoWindow.isOpen()) |
| 104 | bdOpenWindow(m); | 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,7 +239,7 @@ var gb_real_gps_map = (function () { | ||
| 227 | */ | 239 | */ |
| 228 | var focus = function (device) { | 240 | var focus = function (device) { |
| 229 | var m = gps_marker_arr[device]; | 241 | var m = gps_marker_arr[device]; |
| 230 | - if(m){ | 242 | + if (m) { |
| 231 | map.setCenter(m.getPosition()); | 243 | map.setCenter(m.getPosition()); |
| 232 | bdOpenWindow(m); | 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,14 +138,14 @@ var gb_real_gps_svg = (function () { | ||
| 138 | draw_gps(arr); | 138 | draw_gps(arr); |
| 139 | 139 | ||
| 140 | //渲染表格 | 140 | //渲染表格 |
| 141 | - if($('.data_list', wrap).is(":visible")){ | 141 | + if ($('.data_list', wrap).is(":visible")) { |
| 142 | var htmlStr = template('real_gps_table_list-temp', rs); | 142 | var htmlStr = template('real_gps_table_list-temp', rs); |
| 143 | $('.data_list table tbody', wrap).html(htmlStr); | 143 | $('.data_list table tbody', wrap).html(htmlStr); |
| 144 | $('.data_list', wrap).perfectScrollbar({suppressScrollX: true}); | 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 | gb_real_gps_map.renderGps(arr); | 149 | gb_real_gps_map.renderGps(arr); |
| 150 | } | 150 | } |
| 151 | }; | 151 | }; |
| @@ -201,12 +201,15 @@ var gb_real_gps_svg = (function () { | @@ -201,12 +201,15 @@ var gb_real_gps_svg = (function () { | ||
| 201 | rects.enter().append('rect').attr('_id', function (d) { | 201 | rects.enter().append('rect').attr('_id', function (d) { |
| 202 | return 'rct_' + d.deviceId; | 202 | return 'rct_' + d.deviceId; |
| 203 | }); | 203 | }); |
| 204 | + rects.exit().remove(); | ||
| 204 | 205 | ||
| 205 | gps_update_point(rects, svg); | 206 | gps_update_point(rects, svg); |
| 206 | 207 | ||
| 207 | //text | 208 | //text |
| 208 | var ts = gps_cont.selectAll('text').data(data, gps_key); | 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 | ts.text(g_text) | 213 | ts.text(g_text) |
| 211 | gps_update_point(ts, svg); | 214 | gps_update_point(ts, svg); |
| 212 | } | 215 | } |