Commit dfd3a1924c5b03c4d96a0b9e51cb438a2b2441b1
1 parent
b56089fd
1.线调->地图中电子围栏显示异常修复
Showing
5 changed files
with
436 additions
and
426 deletions
src/main/java/com/bsth/controller/realcontrol/dto/StationSpatialData.java
| 1 | -package com.bsth.controller.realcontrol.dto; | |
| 2 | - | |
| 3 | -/** | |
| 4 | - * Created by panzhao on 2016/11/23. | |
| 5 | - */ | |
| 6 | -public class StationSpatialData { | |
| 7 | - | |
| 8 | - private String lineCode; | |
| 9 | - | |
| 10 | - private String stationName; | |
| 11 | - | |
| 12 | - private String stationCode; | |
| 13 | - | |
| 14 | - private String stationMark; | |
| 15 | - | |
| 16 | - private int directions; | |
| 17 | - | |
| 18 | - private Float distances; | |
| 19 | - | |
| 20 | - private Float toTime; | |
| 21 | - | |
| 22 | - private Integer versions; | |
| 23 | - | |
| 24 | - private Float gLonx; | |
| 25 | - | |
| 26 | - private Float gLaty; | |
| 27 | - | |
| 28 | - private Float radius; | |
| 29 | - | |
| 30 | - private String shapesType; | |
| 31 | - | |
| 32 | - private String gPolygonGrid; | |
| 33 | - | |
| 34 | - private Integer stationRouteCode; | |
| 35 | - | |
| 36 | - public String getLineCode() { | |
| 37 | - return lineCode; | |
| 38 | - } | |
| 39 | - | |
| 40 | - public void setLineCode(String lineCode) { | |
| 41 | - this.lineCode = lineCode; | |
| 42 | - } | |
| 43 | - | |
| 44 | - public String getStationName() { | |
| 45 | - return stationName; | |
| 46 | - } | |
| 47 | - | |
| 48 | - public void setStationName(String stationName) { | |
| 49 | - this.stationName = stationName; | |
| 50 | - } | |
| 51 | - | |
| 52 | - public String getStationCode() { | |
| 53 | - return stationCode; | |
| 54 | - } | |
| 55 | - | |
| 56 | - public void setStationCode(String stationCode) { | |
| 57 | - this.stationCode = stationCode; | |
| 58 | - } | |
| 59 | - | |
| 60 | - public String getStationMark() { | |
| 61 | - return stationMark; | |
| 62 | - } | |
| 63 | - | |
| 64 | - public void setStationMark(String stationMark) { | |
| 65 | - this.stationMark = stationMark; | |
| 66 | - } | |
| 67 | - | |
| 68 | - public int getDirections() { | |
| 69 | - return directions; | |
| 70 | - } | |
| 71 | - | |
| 72 | - public void setDirections(int directions) { | |
| 73 | - this.directions = directions; | |
| 74 | - } | |
| 75 | - | |
| 76 | - public Float getDistances() { | |
| 77 | - return distances; | |
| 78 | - } | |
| 79 | - | |
| 80 | - public void setDistances(Float distances) { | |
| 81 | - this.distances = distances; | |
| 82 | - } | |
| 83 | - | |
| 84 | - public Float getToTime() { | |
| 85 | - return toTime; | |
| 86 | - } | |
| 87 | - | |
| 88 | - public void setToTime(Float toTime) { | |
| 89 | - this.toTime = toTime; | |
| 90 | - } | |
| 91 | - | |
| 92 | - public Integer getVersions() { | |
| 93 | - return versions; | |
| 94 | - } | |
| 95 | - | |
| 96 | - public void setVersions(Integer versions) { | |
| 97 | - this.versions = versions; | |
| 98 | - } | |
| 99 | - | |
| 100 | - public Float getgLonx() { | |
| 101 | - return gLonx; | |
| 102 | - } | |
| 103 | - | |
| 104 | - public void setgLonx(Float gLonx) { | |
| 105 | - this.gLonx = gLonx; | |
| 106 | - } | |
| 107 | - | |
| 108 | - public Float getgLaty() { | |
| 109 | - return gLaty; | |
| 110 | - } | |
| 111 | - | |
| 112 | - public void setgLaty(Float gLaty) { | |
| 113 | - this.gLaty = gLaty; | |
| 114 | - } | |
| 115 | - | |
| 116 | - public Float getRadius() { | |
| 117 | - return radius; | |
| 118 | - } | |
| 119 | - | |
| 120 | - public void setRadius(Float radius) { | |
| 121 | - this.radius = radius; | |
| 122 | - } | |
| 123 | - | |
| 124 | - public String getShapesType() { | |
| 125 | - return shapesType; | |
| 126 | - } | |
| 127 | - | |
| 128 | - public void setShapesType(String shapesType) { | |
| 129 | - this.shapesType = shapesType; | |
| 130 | - } | |
| 131 | - | |
| 132 | - public String getgPolygonGrid() { | |
| 133 | - return gPolygonGrid; | |
| 134 | - } | |
| 135 | - | |
| 136 | - public void setgPolygonGrid(String gPolygonGrid) { | |
| 137 | - this.gPolygonGrid = gPolygonGrid; | |
| 138 | - } | |
| 139 | - | |
| 140 | - public Integer getStationRouteCode() { | |
| 141 | - return stationRouteCode; | |
| 142 | - } | |
| 143 | - | |
| 144 | - public void setStationRouteCode(Integer stationRouteCode) { | |
| 145 | - this.stationRouteCode = stationRouteCode; | |
| 146 | - } | |
| 147 | -} | |
| 1 | +package com.bsth.controller.realcontrol.dto; | |
| 2 | + | |
| 3 | +/** | |
| 4 | + * Created by panzhao on 2016/11/23. | |
| 5 | + */ | |
| 6 | +public class StationSpatialData { | |
| 7 | + | |
| 8 | + private Integer stationRouteId; | |
| 9 | + | |
| 10 | + private String lineCode; | |
| 11 | + | |
| 12 | + private String stationName; | |
| 13 | + | |
| 14 | + private String stationCode; | |
| 15 | + | |
| 16 | + private String stationMark; | |
| 17 | + | |
| 18 | + private int directions; | |
| 19 | + | |
| 20 | + private Float distances; | |
| 21 | + | |
| 22 | + private Float toTime; | |
| 23 | + | |
| 24 | + private Integer versions; | |
| 25 | + | |
| 26 | + private Float gLonx; | |
| 27 | + | |
| 28 | + private Float gLaty; | |
| 29 | + | |
| 30 | + private Float radius; | |
| 31 | + | |
| 32 | + private String shapesType; | |
| 33 | + | |
| 34 | + private String gPolygonGrid; | |
| 35 | + | |
| 36 | + private Integer stationRouteCode; | |
| 37 | + | |
| 38 | + public Integer getStationRouteId() { | |
| 39 | + return stationRouteId; | |
| 40 | + } | |
| 41 | + | |
| 42 | + public void setStationRouteId(Integer stationRouteId) { | |
| 43 | + this.stationRouteId = stationRouteId; | |
| 44 | + } | |
| 45 | + | |
| 46 | + public String getLineCode() { | |
| 47 | + return lineCode; | |
| 48 | + } | |
| 49 | + | |
| 50 | + public void setLineCode(String lineCode) { | |
| 51 | + this.lineCode = lineCode; | |
| 52 | + } | |
| 53 | + | |
| 54 | + public String getStationName() { | |
| 55 | + return stationName; | |
| 56 | + } | |
| 57 | + | |
| 58 | + public void setStationName(String stationName) { | |
| 59 | + this.stationName = stationName; | |
| 60 | + } | |
| 61 | + | |
| 62 | + public String getStationCode() { | |
| 63 | + return stationCode; | |
| 64 | + } | |
| 65 | + | |
| 66 | + public void setStationCode(String stationCode) { | |
| 67 | + this.stationCode = stationCode; | |
| 68 | + } | |
| 69 | + | |
| 70 | + public String getStationMark() { | |
| 71 | + return stationMark; | |
| 72 | + } | |
| 73 | + | |
| 74 | + public void setStationMark(String stationMark) { | |
| 75 | + this.stationMark = stationMark; | |
| 76 | + } | |
| 77 | + | |
| 78 | + public int getDirections() { | |
| 79 | + return directions; | |
| 80 | + } | |
| 81 | + | |
| 82 | + public void setDirections(int directions) { | |
| 83 | + this.directions = directions; | |
| 84 | + } | |
| 85 | + | |
| 86 | + public Float getDistances() { | |
| 87 | + return distances; | |
| 88 | + } | |
| 89 | + | |
| 90 | + public void setDistances(Float distances) { | |
| 91 | + this.distances = distances; | |
| 92 | + } | |
| 93 | + | |
| 94 | + public Float getToTime() { | |
| 95 | + return toTime; | |
| 96 | + } | |
| 97 | + | |
| 98 | + public void setToTime(Float toTime) { | |
| 99 | + this.toTime = toTime; | |
| 100 | + } | |
| 101 | + | |
| 102 | + public Integer getVersions() { | |
| 103 | + return versions; | |
| 104 | + } | |
| 105 | + | |
| 106 | + public void setVersions(Integer versions) { | |
| 107 | + this.versions = versions; | |
| 108 | + } | |
| 109 | + | |
| 110 | + public Float getgLonx() { | |
| 111 | + return gLonx; | |
| 112 | + } | |
| 113 | + | |
| 114 | + public void setgLonx(Float gLonx) { | |
| 115 | + this.gLonx = gLonx; | |
| 116 | + } | |
| 117 | + | |
| 118 | + public Float getgLaty() { | |
| 119 | + return gLaty; | |
| 120 | + } | |
| 121 | + | |
| 122 | + public void setgLaty(Float gLaty) { | |
| 123 | + this.gLaty = gLaty; | |
| 124 | + } | |
| 125 | + | |
| 126 | + public Float getRadius() { | |
| 127 | + return radius; | |
| 128 | + } | |
| 129 | + | |
| 130 | + public void setRadius(Float radius) { | |
| 131 | + this.radius = radius; | |
| 132 | + } | |
| 133 | + | |
| 134 | + public String getShapesType() { | |
| 135 | + return shapesType; | |
| 136 | + } | |
| 137 | + | |
| 138 | + public void setShapesType(String shapesType) { | |
| 139 | + this.shapesType = shapesType; | |
| 140 | + } | |
| 141 | + | |
| 142 | + public String getgPolygonGrid() { | |
| 143 | + return gPolygonGrid; | |
| 144 | + } | |
| 145 | + | |
| 146 | + public void setgPolygonGrid(String gPolygonGrid) { | |
| 147 | + this.gPolygonGrid = gPolygonGrid; | |
| 148 | + } | |
| 149 | + | |
| 150 | + public Integer getStationRouteCode() { | |
| 151 | + return stationRouteCode; | |
| 152 | + } | |
| 153 | + | |
| 154 | + public void setStationRouteCode(Integer stationRouteCode) { | |
| 155 | + this.stationRouteCode = stationRouteCode; | |
| 156 | + } | |
| 157 | +} | ... | ... |
src/main/java/com/bsth/service/realcontrol/impl/RealMapServiceImpl.java
| ... | ... | @@ -42,7 +42,7 @@ public class RealMapServiceImpl implements RealMapService { |
| 42 | 42 | } |
| 43 | 43 | inStr = " (" + inStr.substring(1) + ")"; |
| 44 | 44 | |
| 45 | - String sql = "select r.LINE_CODE,r.STATION_NAME,r.STATION_CODE,r.STATION_MARK,r.DIRECTIONS,r.DISTANCES,r.TO_TIME, r.VERSIONS,ST_X(s.CENTER_POINT_WGS) G_LONX,ST_Y(s.CENTER_POINT_WGS) G_LATY,r.RADIUS,r.SHAPED_TYPE shapes_type,ST_AsText(r.BUFFER_POLYGON_WGS) as G_POLYGON_GRID, r.STATION_ROUTE_CODE from bsth_c_stationroute r inner join bsth_c_station s on r.station=s.id where r.line_code in " + inStr + " and r.destroy=0"; | |
| 45 | + String sql = "select r.ID STATION_ROUTE_ID,r.LINE_CODE,r.STATION_NAME,r.STATION_CODE,r.STATION_MARK,r.DIRECTIONS,r.DISTANCES,r.TO_TIME, r.VERSIONS,ST_X(s.CENTER_POINT_WGS) G_LONX,ST_Y(s.CENTER_POINT_WGS) G_LATY,r.RADIUS,r.SHAPED_TYPE shapes_type,ST_AsText(r.BUFFER_POLYGON_WGS) as G_POLYGON_GRID, r.STATION_ROUTE_CODE from bsth_c_stationroute r inner join bsth_c_station s on r.station=s.id where r.line_code in " + inStr + " and r.destroy=0"; | |
| 46 | 46 | |
| 47 | 47 | List<StationSpatialData> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(StationSpatialData.class)); |
| 48 | 48 | rs.put("status", ResponseCode.SUCCESS); | ... | ... |
src/main/resources/static/real_control_v2/mapmonitor/js/map/platform/baidu.js
| ... | ... | @@ -282,7 +282,7 @@ var gb_map_baidu = (function(){ |
| 282 | 282 | //绘制多边形 |
| 283 | 283 | drawPolygon: function(opt){ |
| 284 | 284 | var station = opt.station |
| 285 | - ,code = station.stationCode; | |
| 285 | + ,code = station.stationRouteId; | |
| 286 | 286 | if(electronicFences[code]){ |
| 287 | 287 | electronicFences[code].show(); |
| 288 | 288 | return; | ... | ... |
src/main/resources/static/real_control_v2/mapmonitor/js/map/platform/gaode.js
| ... | ... | @@ -168,7 +168,7 @@ var gb_map_gaode = (function() { |
| 168 | 168 | //绘制多边形 |
| 169 | 169 | drawPolygon: function(opt){ |
| 170 | 170 | var station = opt.station |
| 171 | - ,code = station.stationCode; | |
| 171 | + ,code = station.stationRouteId; | |
| 172 | 172 | if(electronicFences[code]){ |
| 173 | 173 | electronicFences[code].show(); |
| 174 | 174 | return; | ... | ... |
src/main/resources/static/real_control_v2/mapmonitor/js/map_overlay_manager.js
| 1 | -var gb_map_overlay_mge = (function () { | |
| 2 | - | |
| 3 | - var storage = window.localStorage; | |
| 4 | - | |
| 5 | - var temps; | |
| 6 | - $.get('/real_control_v2/mapmonitor/fragments/map_infowindow.html', function (dom) { | |
| 7 | - temps = gb_common.compileTempByDom(dom, {compress: true}); | |
| 8 | - }); | |
| 9 | - | |
| 10 | - var $abnormNoticePanel = $('.c_b_abnorm_notice'); | |
| 11 | - var gpsRefresh = function (addArr, upArr, upDownChange, overspeedList) { | |
| 12 | - if(!$('.main-container .map-panel').is(':visible')) | |
| 13 | - return; | |
| 14 | - //如果地图正在重绘,暂时不刷新GPS | |
| 15 | - if(reDrawing) | |
| 16 | - return; | |
| 17 | - //var all = addArr.concat(upArr).concat(upDownChange); | |
| 18 | - gpsRefreshAll(addArr, upArr, upDownChange); | |
| 19 | - | |
| 20 | - //渲染超速信息 | |
| 21 | - overspeedList.sort(overspeed_sort); | |
| 22 | - var htmlStr = template('map_abnorm_overspeed_list-temp', {list: overspeedList}); | |
| 23 | - $abnormNoticePanel.html(htmlStr).scrollTop($abnormNoticePanel[0].scrollHeight); | |
| 24 | - }; | |
| 25 | - | |
| 26 | - var overspeed_sort = function (a, b) { | |
| 27 | - if(a.ets && !b.ets) | |
| 28 | - return -1; | |
| 29 | - if(!a.ets && b.ets) | |
| 30 | - return 1; | |
| 31 | - return a.st - b.st; | |
| 32 | - }; | |
| 33 | - | |
| 34 | - /** | |
| 35 | - * 超速点击 | |
| 36 | - */ | |
| 37 | - $abnormNoticePanel.on('click', '.c_b_item', function () { | |
| 38 | - var nbbm = $(this).data('nbbm'); | |
| 39 | - gb_map_gps_tree.selectitem(null, {value: nbbm}); | |
| 40 | - }); | |
| 41 | - | |
| 42 | - var gpsRefreshAll = function (addArr, upArr, upDownChange) { | |
| 43 | - //更新设备树菜单 | |
| 44 | - if(gb_map_gps_tree.readyStatus()){ | |
| 45 | - gb_map_gps_tree.create_node(addArr); | |
| 46 | - gb_map_gps_tree.update_node(upArr); | |
| 47 | - gb_map_gps_tree.changeUpDown(upDownChange); | |
| 48 | - } | |
| 49 | - | |
| 50 | - //更新地图 | |
| 51 | - var all = addArr.concat(upArr).concat(upDownChange); | |
| 52 | - gb_map_imap.call('drawRealGpsMarker', {gpsList: all}); | |
| 53 | - }; | |
| 54 | - | |
| 55 | - var reload_gps = function () { | |
| 56 | - var array = gb_common.get_vals(gb_data_gps.allGps); | |
| 57 | - gb_map_gps_tree.refresh(); | |
| 58 | - gb_map_imap.call('drawRealGpsMarker', {gpsList: array}); | |
| 59 | - }; | |
| 60 | - | |
| 61 | - var deviceFilter = function (node) { | |
| 62 | - return node.a_attr && node.a_attr.type=='device'; | |
| 63 | - }; | |
| 64 | - | |
| 65 | - //绘制线路走向 | |
| 66 | - var drawAllSection=function () { | |
| 67 | - //绘制线路走向 | |
| 68 | - var lines=JSON.parse(storage.getItem('lineControlItems')); | |
| 69 | - $.each(lines, function () { | |
| 70 | - //从storage里获取路由数据 | |
| 71 | - var lineCode=this.lineCode; | |
| 72 | - var route = JSON.parse(storage.getItem(lineCode + '_route')); | |
| 73 | - //上行 | |
| 74 | - gb_map_imap.call('drawLine', { | |
| 75 | - route: route, | |
| 76 | - style: {strokeWeight:6, strokeColor: gb_map_config.getConfig().section.color.up}, | |
| 77 | - id: lineCode+'_0', | |
| 78 | - upDown: 0, | |
| 79 | - hide: true | |
| 80 | - }); | |
| 81 | - //下行 | |
| 82 | - gb_map_imap.call('drawLine', { | |
| 83 | - route: route, | |
| 84 | - style: {strokeWeight:6, strokeColor: gb_map_config.getConfig().section.color.down}, | |
| 85 | - id: lineCode+'_1', | |
| 86 | - upDown: 1, | |
| 87 | - hide: true | |
| 88 | - }); | |
| 89 | - | |
| 90 | - }); | |
| 91 | - }; | |
| 92 | - | |
| 93 | - //根据选中项显示路段 | |
| 94 | - var showSection = function (chs) { | |
| 95 | - var idx = {}; | |
| 96 | - $.each(chs, function () { | |
| 97 | - idx[this.data.lineId+'_'+this.data.upDown]=1; | |
| 98 | - }); | |
| 99 | - | |
| 100 | - gb_map_imap.call('refreshPolyline', {idx: gb_common.get_keys(idx)}); | |
| 101 | - }; | |
| 102 | - | |
| 103 | - | |
| 104 | - //是否正在重绘 | |
| 105 | - var reDrawing; | |
| 106 | - var reDraw = function () { | |
| 107 | - reDrawing = true; | |
| 108 | - | |
| 109 | - gb_map_imap.call('clearAll'); | |
| 110 | - | |
| 111 | - try{ | |
| 112 | - drawAllSection(); | |
| 113 | - }catch (e){ | |
| 114 | - console.log(e); | |
| 115 | - } | |
| 116 | - //重绘GPS | |
| 117 | - gb_map_imap.call('drawRealGpsMarker', {gpsList: gb_common.get_vals(gb_data_gps.allGps)}); | |
| 118 | - | |
| 119 | - showOverlayByChecks(); | |
| 120 | - //显示路段 | |
| 121 | - showSection(getCheckedDevice()); | |
| 122 | - | |
| 123 | - reDrawing = false; | |
| 124 | - }; | |
| 125 | - | |
| 126 | - //重绘GPS | |
| 127 | - var reDrawGps = function () { | |
| 128 | - reDrawing = true; | |
| 129 | - gb_map_imap.call('clearAllGps'); | |
| 130 | - //重绘GPS | |
| 131 | - gb_map_imap.call('drawRealGpsMarker', {gpsList: gb_common.get_vals(gb_data_gps.allGps)}); | |
| 132 | - | |
| 133 | - showOverlayByChecks(); | |
| 134 | - reDrawing = false; | |
| 135 | - }; | |
| 136 | - | |
| 137 | - var init = function () { | |
| 138 | - reDraw(); | |
| 139 | - //注册GPS刷新事件 | |
| 140 | - gb_data_gps.registerCallback(gpsRefresh); | |
| 141 | - | |
| 142 | - centerToRational(); | |
| 143 | - }; | |
| 144 | - | |
| 145 | - | |
| 146 | - var showOverlayByChecks = function () { | |
| 147 | - var chs = getCheckedDevice(),chsMap={}; | |
| 148 | - $.each(chs, function () { | |
| 149 | - chsMap[this.a_attr.device]=true; | |
| 150 | - }); | |
| 151 | - | |
| 152 | - gb_map_imap.call('showGpsMarker', {chs: chsMap}); | |
| 153 | - | |
| 154 | - //路段 | |
| 155 | - showSection(chs); | |
| 156 | - | |
| 157 | - }; | |
| 158 | - | |
| 159 | - var _focus = function (deviceId) { | |
| 160 | - gb_map_imap.call('goToMarker', {deviceId: deviceId}); | |
| 161 | - //打开信息窗口 | |
| 162 | - gb_map_imap.call('openWindow',{deviceId: deviceId}); | |
| 163 | - }; | |
| 164 | - | |
| 165 | - //站点获得焦点 | |
| 166 | - var _focus_station = function (station) { | |
| 167 | - gb_map_imap.call('goToStation', station.stationCode); | |
| 168 | - }; | |
| 169 | - | |
| 170 | - //停车场获得焦点 | |
| 171 | - var _focus_carpark = function (carpark) { | |
| 172 | - //console.log('_focus_carpark', carpark); | |
| 173 | - gb_map_imap.call('goToCarpark', carpark.parkCode); | |
| 174 | - }; | |
| 175 | - | |
| 176 | - function getCheckedDevice() { | |
| 177 | - return gb_map_gps_tree.getChecked().filter(deviceFilter); | |
| 178 | - } | |
| 179 | - | |
| 180 | - //绘制站点 | |
| 181 | - var drawStation = function () { | |
| 182 | - var list = gb_map_spatial_data.getCheckedStation(); | |
| 183 | - //绘制站点 | |
| 184 | - gb_map_imap.call('drawStationMarker', {list: list}); | |
| 185 | - //绘制电子围栏 | |
| 186 | - drawElectronicFence(list); | |
| 187 | - }; | |
| 188 | - | |
| 189 | - //绘制电子围栏 | |
| 190 | - var drawElectronicFence = function (list) { | |
| 191 | - var config = gb_map_config.getConfig().spatialData; | |
| 192 | - if(!config.electronicFence) | |
| 193 | - return; | |
| 194 | - | |
| 195 | - if(!list){ | |
| 196 | - list = gb_map_spatial_data.getCheckedStation(); | |
| 197 | - } | |
| 198 | - | |
| 199 | - | |
| 200 | - gb_map_imap.call('hideAllCircles'); | |
| 201 | - $.each(list, function () { | |
| 202 | - fun=this.shapesType=='r'?drawCircle:drawPolygon; | |
| 203 | - fun(this); | |
| 204 | - }); | |
| 205 | - }; | |
| 206 | - | |
| 207 | - //绘制停车场 | |
| 208 | - var drawCarpark = function () { | |
| 209 | - var list = gb_map_spatial_data.gteCheckedCarpark(); | |
| 210 | - gb_map_imap.call('drawCarpark', {list: list}); | |
| 211 | - }; | |
| 212 | - | |
| 213 | - var drawCircle=function (data) { | |
| 214 | - var config = gb_map_config.getConfig().section.color; | |
| 215 | - var color = data.directions==0?config.up:config.down; | |
| 216 | - | |
| 217 | - var opt = { | |
| 218 | - lon: data.lon, | |
| 219 | - lat: data.lat, | |
| 220 | - text: data.stationName, | |
| 221 | - color: color, | |
| 222 | - weight: 2, | |
| 223 | - radius: parseFloat(data.radius), | |
| 224 | - id: data.stationCode | |
| 225 | - }; | |
| 226 | - | |
| 227 | - gb_map_imap.call('drawCircle', opt); | |
| 228 | - }; | |
| 229 | - | |
| 230 | - var drawPolygon=function (data) { | |
| 231 | - var config = gb_map_config.getConfig().section.color; | |
| 232 | - var color = data.directions==0?config.up:config.down; | |
| 233 | - | |
| 234 | - var opt = { | |
| 235 | - //id:data.stationCode, | |
| 236 | - color: color, | |
| 237 | - weight: 2, | |
| 238 | - station: data | |
| 239 | - }; | |
| 240 | - | |
| 241 | - gb_map_imap.call('drawPolygon', opt); | |
| 242 | - }; | |
| 243 | - | |
| 244 | - //地图居中至合理的位置 | |
| 245 | - var centerToRational=function () { | |
| 246 | - var chs=getCheckedDevice(); | |
| 247 | - if(chs && chs.length > 0){ | |
| 248 | - var id=chs[0].data.lineId+'_'+chs[0].data.upDown; | |
| 249 | - gb_map_imap.call('centerToLine', {id: id}); | |
| 250 | - } | |
| 251 | - }; | |
| 252 | - | |
| 253 | - return { | |
| 254 | - init: init, | |
| 255 | - refresh: showOverlayByChecks, | |
| 256 | - _focus: _focus, | |
| 257 | - _focus_station: _focus_station, | |
| 258 | - _focus_carpark: _focus_carpark, | |
| 259 | - map_gps_win_temp: function (data) { | |
| 260 | - return temps['map-win-gps-detail-temp'](data); | |
| 261 | - }, | |
| 262 | - map_station_win_temp: function (data) { | |
| 263 | - return temps['map-win-station-detail-temp'](data); | |
| 264 | - }, | |
| 265 | - map_carpark_win_temp: function (data) { | |
| 266 | - return temps['map-win-carpark-detail-temp'](data); | |
| 267 | - }, | |
| 268 | - reDraw: reDraw, | |
| 269 | - reDrawGps: reDrawGps, | |
| 270 | - getCheckedDevice: getCheckedDevice, | |
| 271 | - drawStation: drawStation, | |
| 272 | - drawElectronicFence: drawElectronicFence, | |
| 273 | - drawCarpark: drawCarpark, | |
| 274 | - centerToRational:centerToRational, | |
| 275 | - reload_gps: reload_gps | |
| 276 | - }; | |
| 1 | +var gb_map_overlay_mge = (function () { | |
| 2 | + | |
| 3 | + var storage = window.localStorage; | |
| 4 | + | |
| 5 | + var temps; | |
| 6 | + $.get('/real_control_v2/mapmonitor/fragments/map_infowindow.html', function (dom) { | |
| 7 | + temps = gb_common.compileTempByDom(dom, {compress: true}); | |
| 8 | + }); | |
| 9 | + | |
| 10 | + var $abnormNoticePanel = $('.c_b_abnorm_notice'); | |
| 11 | + var gpsRefresh = function (addArr, upArr, upDownChange, overspeedList) { | |
| 12 | + if(!$('.main-container .map-panel').is(':visible')) | |
| 13 | + return; | |
| 14 | + //如果地图正在重绘,暂时不刷新GPS | |
| 15 | + if(reDrawing) | |
| 16 | + return; | |
| 17 | + //var all = addArr.concat(upArr).concat(upDownChange); | |
| 18 | + gpsRefreshAll(addArr, upArr, upDownChange); | |
| 19 | + | |
| 20 | + //渲染超速信息 | |
| 21 | + overspeedList.sort(overspeed_sort); | |
| 22 | + var htmlStr = template('map_abnorm_overspeed_list-temp', {list: overspeedList}); | |
| 23 | + $abnormNoticePanel.html(htmlStr).scrollTop($abnormNoticePanel[0].scrollHeight); | |
| 24 | + }; | |
| 25 | + | |
| 26 | + var overspeed_sort = function (a, b) { | |
| 27 | + if(a.ets && !b.ets) | |
| 28 | + return -1; | |
| 29 | + if(!a.ets && b.ets) | |
| 30 | + return 1; | |
| 31 | + return a.st - b.st; | |
| 32 | + }; | |
| 33 | + | |
| 34 | + /** | |
| 35 | + * 超速点击 | |
| 36 | + */ | |
| 37 | + $abnormNoticePanel.on('click', '.c_b_item', function () { | |
| 38 | + var nbbm = $(this).data('nbbm'); | |
| 39 | + gb_map_gps_tree.selectitem(null, {value: nbbm}); | |
| 40 | + }); | |
| 41 | + | |
| 42 | + var gpsRefreshAll = function (addArr, upArr, upDownChange) { | |
| 43 | + //更新设备树菜单 | |
| 44 | + if(gb_map_gps_tree.readyStatus()){ | |
| 45 | + gb_map_gps_tree.create_node(addArr); | |
| 46 | + gb_map_gps_tree.update_node(upArr); | |
| 47 | + gb_map_gps_tree.changeUpDown(upDownChange); | |
| 48 | + } | |
| 49 | + | |
| 50 | + //更新地图 | |
| 51 | + var all = addArr.concat(upArr).concat(upDownChange); | |
| 52 | + gb_map_imap.call('drawRealGpsMarker', {gpsList: all}); | |
| 53 | + }; | |
| 54 | + | |
| 55 | + var reload_gps = function () { | |
| 56 | + var array = gb_common.get_vals(gb_data_gps.allGps); | |
| 57 | + gb_map_gps_tree.refresh(); | |
| 58 | + gb_map_imap.call('drawRealGpsMarker', {gpsList: array}); | |
| 59 | + }; | |
| 60 | + | |
| 61 | + var deviceFilter = function (node) { | |
| 62 | + return node.a_attr && node.a_attr.type=='device'; | |
| 63 | + }; | |
| 64 | + | |
| 65 | + //绘制线路走向 | |
| 66 | + var drawAllSection=function () { | |
| 67 | + //绘制线路走向 | |
| 68 | + var lines=JSON.parse(storage.getItem('lineControlItems')); | |
| 69 | + $.each(lines, function () { | |
| 70 | + //从storage里获取路由数据 | |
| 71 | + var lineCode=this.lineCode; | |
| 72 | + var route = JSON.parse(storage.getItem(lineCode + '_route')); | |
| 73 | + //上行 | |
| 74 | + gb_map_imap.call('drawLine', { | |
| 75 | + route: route, | |
| 76 | + style: {strokeWeight:6, strokeColor: gb_map_config.getConfig().section.color.up}, | |
| 77 | + id: lineCode+'_0', | |
| 78 | + upDown: 0, | |
| 79 | + hide: true | |
| 80 | + }); | |
| 81 | + //下行 | |
| 82 | + gb_map_imap.call('drawLine', { | |
| 83 | + route: route, | |
| 84 | + style: {strokeWeight:6, strokeColor: gb_map_config.getConfig().section.color.down}, | |
| 85 | + id: lineCode+'_1', | |
| 86 | + upDown: 1, | |
| 87 | + hide: true | |
| 88 | + }); | |
| 89 | + | |
| 90 | + }); | |
| 91 | + }; | |
| 92 | + | |
| 93 | + //根据选中项显示路段 | |
| 94 | + var showSection = function (chs) { | |
| 95 | + var idx = {}; | |
| 96 | + $.each(chs, function () { | |
| 97 | + idx[this.data.lineId+'_'+this.data.upDown]=1; | |
| 98 | + }); | |
| 99 | + | |
| 100 | + gb_map_imap.call('refreshPolyline', {idx: gb_common.get_keys(idx)}); | |
| 101 | + }; | |
| 102 | + | |
| 103 | + | |
| 104 | + //是否正在重绘 | |
| 105 | + var reDrawing; | |
| 106 | + var reDraw = function () { | |
| 107 | + reDrawing = true; | |
| 108 | + | |
| 109 | + gb_map_imap.call('clearAll'); | |
| 110 | + | |
| 111 | + try{ | |
| 112 | + drawAllSection(); | |
| 113 | + }catch (e){ | |
| 114 | + console.log(e); | |
| 115 | + } | |
| 116 | + //重绘GPS | |
| 117 | + gb_map_imap.call('drawRealGpsMarker', {gpsList: gb_common.get_vals(gb_data_gps.allGps)}); | |
| 118 | + | |
| 119 | + showOverlayByChecks(); | |
| 120 | + //显示路段 | |
| 121 | + showSection(getCheckedDevice()); | |
| 122 | + | |
| 123 | + reDrawing = false; | |
| 124 | + }; | |
| 125 | + | |
| 126 | + //重绘GPS | |
| 127 | + var reDrawGps = function () { | |
| 128 | + reDrawing = true; | |
| 129 | + gb_map_imap.call('clearAllGps'); | |
| 130 | + //重绘GPS | |
| 131 | + gb_map_imap.call('drawRealGpsMarker', {gpsList: gb_common.get_vals(gb_data_gps.allGps)}); | |
| 132 | + | |
| 133 | + showOverlayByChecks(); | |
| 134 | + reDrawing = false; | |
| 135 | + }; | |
| 136 | + | |
| 137 | + var init = function () { | |
| 138 | + reDraw(); | |
| 139 | + //注册GPS刷新事件 | |
| 140 | + gb_data_gps.registerCallback(gpsRefresh); | |
| 141 | + | |
| 142 | + centerToRational(); | |
| 143 | + }; | |
| 144 | + | |
| 145 | + | |
| 146 | + var showOverlayByChecks = function () { | |
| 147 | + var chs = getCheckedDevice(),chsMap={}; | |
| 148 | + $.each(chs, function () { | |
| 149 | + chsMap[this.a_attr.device]=true; | |
| 150 | + }); | |
| 151 | + | |
| 152 | + gb_map_imap.call('showGpsMarker', {chs: chsMap}); | |
| 153 | + | |
| 154 | + //路段 | |
| 155 | + showSection(chs); | |
| 156 | + | |
| 157 | + }; | |
| 158 | + | |
| 159 | + var _focus = function (deviceId) { | |
| 160 | + gb_map_imap.call('goToMarker', {deviceId: deviceId}); | |
| 161 | + //打开信息窗口 | |
| 162 | + gb_map_imap.call('openWindow',{deviceId: deviceId}); | |
| 163 | + }; | |
| 164 | + | |
| 165 | + //站点获得焦点 | |
| 166 | + var _focus_station = function (station) { | |
| 167 | + gb_map_imap.call('goToStation', station.stationCode); | |
| 168 | + }; | |
| 169 | + | |
| 170 | + //停车场获得焦点 | |
| 171 | + var _focus_carpark = function (carpark) { | |
| 172 | + //console.log('_focus_carpark', carpark); | |
| 173 | + gb_map_imap.call('goToCarpark', carpark.parkCode); | |
| 174 | + }; | |
| 175 | + | |
| 176 | + function getCheckedDevice() { | |
| 177 | + return gb_map_gps_tree.getChecked().filter(deviceFilter); | |
| 178 | + } | |
| 179 | + | |
| 180 | + //绘制站点 | |
| 181 | + var drawStation = function () { | |
| 182 | + var list = gb_map_spatial_data.getCheckedStation(); | |
| 183 | + //绘制站点 | |
| 184 | + gb_map_imap.call('drawStationMarker', {list: list}); | |
| 185 | + //绘制电子围栏 | |
| 186 | + drawElectronicFence(list); | |
| 187 | + }; | |
| 188 | + | |
| 189 | + //绘制电子围栏 | |
| 190 | + var drawElectronicFence = function (list) { | |
| 191 | + var config = gb_map_config.getConfig().spatialData; | |
| 192 | + if(!config.electronicFence) | |
| 193 | + return; | |
| 194 | + | |
| 195 | + if(!list){ | |
| 196 | + list = gb_map_spatial_data.getCheckedStation(); | |
| 197 | + } | |
| 198 | + | |
| 199 | + | |
| 200 | + gb_map_imap.call('hideAllCircles'); | |
| 201 | + $.each(list, function () { | |
| 202 | + fun=this.shapesType=='r'?drawCircle:drawPolygon; | |
| 203 | + fun(this); | |
| 204 | + }); | |
| 205 | + }; | |
| 206 | + | |
| 207 | + //绘制停车场 | |
| 208 | + var drawCarpark = function () { | |
| 209 | + var list = gb_map_spatial_data.gteCheckedCarpark(); | |
| 210 | + gb_map_imap.call('drawCarpark', {list: list}); | |
| 211 | + }; | |
| 212 | + | |
| 213 | + var drawCircle=function (data) { | |
| 214 | + var config = gb_map_config.getConfig().section.color; | |
| 215 | + var color = data.directions==0?config.up:config.down; | |
| 216 | + | |
| 217 | + var opt = { | |
| 218 | + lon: data.lon, | |
| 219 | + lat: data.lat, | |
| 220 | + text: data.stationName, | |
| 221 | + color: color, | |
| 222 | + weight: 2, | |
| 223 | + radius: parseFloat(data.radius), | |
| 224 | + id: data.stationRouteId | |
| 225 | + }; | |
| 226 | + | |
| 227 | + gb_map_imap.call('drawCircle', opt); | |
| 228 | + }; | |
| 229 | + | |
| 230 | + var drawPolygon=function (data) { | |
| 231 | + var config = gb_map_config.getConfig().section.color; | |
| 232 | + var color = data.directions==0?config.up:config.down; | |
| 233 | + | |
| 234 | + var opt = { | |
| 235 | + //id:data.stationCode, | |
| 236 | + color: color, | |
| 237 | + weight: 2, | |
| 238 | + station: data | |
| 239 | + }; | |
| 240 | + | |
| 241 | + gb_map_imap.call('drawPolygon', opt); | |
| 242 | + }; | |
| 243 | + | |
| 244 | + //地图居中至合理的位置 | |
| 245 | + var centerToRational=function () { | |
| 246 | + var chs=getCheckedDevice(); | |
| 247 | + if(chs && chs.length > 0){ | |
| 248 | + var id=chs[0].data.lineId+'_'+chs[0].data.upDown; | |
| 249 | + gb_map_imap.call('centerToLine', {id: id}); | |
| 250 | + } | |
| 251 | + }; | |
| 252 | + | |
| 253 | + return { | |
| 254 | + init: init, | |
| 255 | + refresh: showOverlayByChecks, | |
| 256 | + _focus: _focus, | |
| 257 | + _focus_station: _focus_station, | |
| 258 | + _focus_carpark: _focus_carpark, | |
| 259 | + map_gps_win_temp: function (data) { | |
| 260 | + return temps['map-win-gps-detail-temp'](data); | |
| 261 | + }, | |
| 262 | + map_station_win_temp: function (data) { | |
| 263 | + return temps['map-win-station-detail-temp'](data); | |
| 264 | + }, | |
| 265 | + map_carpark_win_temp: function (data) { | |
| 266 | + return temps['map-win-carpark-detail-temp'](data); | |
| 267 | + }, | |
| 268 | + reDraw: reDraw, | |
| 269 | + reDrawGps: reDrawGps, | |
| 270 | + getCheckedDevice: getCheckedDevice, | |
| 271 | + drawStation: drawStation, | |
| 272 | + drawElectronicFence: drawElectronicFence, | |
| 273 | + drawCarpark: drawCarpark, | |
| 274 | + centerToRational:centerToRational, | |
| 275 | + reload_gps: reload_gps | |
| 276 | + }; | |
| 277 | 277 | })(); |
| 278 | 278 | \ No newline at end of file | ... | ... |