Commit 75dd9f6e5fc122e9657c9ebc64b1d38e7ff79e92
1 parent
7fe23b16
update
Showing
8 changed files
with
157 additions
and
92 deletions
src/main/resources/static/real_control_v2/assets/imgs/bus1-R.png
0 → 100644
3.61 KB
src/main/resources/static/real_control_v2/mapmonitor/css/real.css
| 1 | +input[type=checkbox].disabled{ | ||
| 2 | + background: #d6d3d3; | ||
| 3 | + border-color: #d6d3d3 !important; | ||
| 4 | +} | ||
| 5 | + | ||
| 1 | .z-depth-2 { | 6 | .z-depth-2 { |
| 2 | box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); | 7 | box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); |
| 3 | } | 8 | } |
| @@ -100,7 +105,7 @@ | @@ -100,7 +105,7 @@ | ||
| 100 | border: 1px solid #bfbcbc;*/ | 105 | border: 1px solid #bfbcbc;*/ |
| 101 | 106 | ||
| 102 | position: absolute !important; | 107 | position: absolute !important; |
| 103 | - height: 180px; | 108 | + height: 124px; |
| 104 | bottom: 2px !important; | 109 | bottom: 2px !important; |
| 105 | background: #fff; | 110 | background: #fff; |
| 106 | box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); | 111 | box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); |
| @@ -147,7 +152,7 @@ | @@ -147,7 +152,7 @@ | ||
| 147 | */ | 152 | */ |
| 148 | .real_bottom_panel #handle{ | 153 | .real_bottom_panel #handle{ |
| 149 | width: 100%; | 154 | width: 100%; |
| 150 | - height: 3px; | 155 | + height: 4px; |
| 151 | top: -3px; | 156 | top: -3px; |
| 152 | background-color: rgba(136, 137, 138, 0.49); | 157 | background-color: rgba(136, 137, 138, 0.49); |
| 153 | cursor: row-resize; | 158 | cursor: row-resize; |
src/main/resources/static/real_control_v2/mapmonitor/fragments/map_config.html
| @@ -20,19 +20,10 @@ | @@ -20,19 +20,10 @@ | ||
| 20 | </div> | 20 | </div> |
| 21 | 21 | ||
| 22 | <div class="uk-form-row"> | 22 | <div class="uk-form-row"> |
| 23 | - <span class="uk-form-label">异常警报输出</span> | ||
| 24 | - <div class="uk-form-controls"> | ||
| 25 | - <label><input type="checkbox" {{if abnormalPrint.speeding}}checked{{/if}}> 超速</label> | ||
| 26 | - <label><input type="checkbox" {{if abnormalPrint.outBounds}}checked{{/if}}> 越界</label> | ||
| 27 | - <label><input type="checkbox" {{if abnormalPrint.largeMargin}}checked{{/if}}> 大间隔</label> | ||
| 28 | - </div> | ||
| 29 | - </div> | ||
| 30 | - | ||
| 31 | - <div class="uk-form-row"> | ||
| 32 | <span class="uk-form-label">车辆图标</span> | 23 | <span class="uk-form-label">车辆图标</span> |
| 33 | <div class="uk-form-controls"> | 24 | <div class="uk-form-controls"> |
| 34 | - <label><input type="checkbox" {{if carIcon.angle}}checked{{/if}}> 标示角度</label> | ||
| 35 | - <label><input type="checkbox" {{if carIcon.converge}}checked{{/if}}> 聚合</label> | 25 | + <label><input name="carIcon_angle" type="checkbox" {{if carIcon.angle}}checked{{/if}}> 标示角度</label> |
| 26 | + <label><input class="disabled" disabled type="checkbox" {{if carIcon.converge}}checked{{/if}}> 聚合</label> | ||
| 36 | </div> | 27 | </div> |
| 37 | </div> | 28 | </div> |
| 38 | 29 | ||
| @@ -81,7 +72,14 @@ | @@ -81,7 +72,14 @@ | ||
| 81 | </div> | 72 | </div> |
| 82 | </div> | 73 | </div> |
| 83 | 74 | ||
| 84 | - <br> | 75 | + <div class="uk-form-row"> |
| 76 | + <span class="uk-form-label">异常警报输出</span> | ||
| 77 | + <div class="uk-form-controls"> | ||
| 78 | + <label><input class="disabled" disabled type="checkbox" {{if abnormalPrint.speeding}}checked{{/if}}> 超速</label> | ||
| 79 | + <label><input class="disabled" disabled type="checkbox" {{if abnormalPrint.outBounds}}checked{{/if}}> 越界</label> | ||
| 80 | + <label><input class="disabled" disabled type="checkbox" {{if abnormalPrint.largeMargin}}checked{{/if}}> 大间隔</label> | ||
| 81 | + </div> | ||
| 82 | + </div> | ||
| 85 | </form> | 83 | </form> |
| 86 | </script> | 84 | </script> |
| 87 | </div> | 85 | </div> |
src/main/resources/static/real_control_v2/mapmonitor/js/config.js
| @@ -86,7 +86,8 @@ var gb_map_config = (function () { | @@ -86,7 +86,8 @@ var gb_map_config = (function () { | ||
| 86 | traffic: trafficSwitch, | 86 | traffic: trafficSwitch, |
| 87 | spatial_data_station: spatial_data_station, | 87 | spatial_data_station: spatial_data_station, |
| 88 | spatial_data_carPark: spatial_data_carPark, | 88 | spatial_data_carPark: spatial_data_carPark, |
| 89 | - spatial_electronicFence: spatial_electronicFence | 89 | + spatial_electronicFence: spatial_electronicFence, |
| 90 | + carIcon_angle: carIcon_angle | ||
| 90 | }; | 91 | }; |
| 91 | 92 | ||
| 92 | //切换地图类型 | 93 | //切换地图类型 |
| @@ -137,6 +138,12 @@ var gb_map_config = (function () { | @@ -137,6 +138,12 @@ var gb_map_config = (function () { | ||
| 137 | else | 138 | else |
| 138 | gb_map_imap.call('hideAllCircles'); | 139 | gb_map_imap.call('hideAllCircles'); |
| 139 | } | 140 | } |
| 141 | + | ||
| 142 | + //标识角度 | ||
| 143 | + function carIcon_angle(val) { | ||
| 144 | + defaultConfig.carIcon.angle=this.checked; | ||
| 145 | + gb_map_overlay_mge.reDraw(); | ||
| 146 | + } | ||
| 140 | 147 | ||
| 141 | function recursion_get_attr(data, attr) { | 148 | function recursion_get_attr(data, attr) { |
| 142 | var ats = attr.split('.'), | 149 | var ats = attr.split('.'), |
src/main/resources/static/real_control_v2/mapmonitor/js/map/iMap.js
| @@ -6,14 +6,11 @@ var gb_map_imap = (function () { | @@ -6,14 +6,11 @@ var gb_map_imap = (function () { | ||
| 6 | var mapContainer = $('#mapContainer'); | 6 | var mapContainer = $('#mapContainer'); |
| 7 | var maps = {}; | 7 | var maps = {}; |
| 8 | //尝试从 localStorage 里获取默认的地图类型 | 8 | //尝试从 localStorage 里获取默认的地图类型 |
| 9 | - var currentMap = storage.getItem('real_map'); | 9 | + var currentMap;// = storage.getItem('real_map'); |
| 10 | var mapProxy = { | 10 | var mapProxy = { |
| 11 | //添加一个地图实例 | 11 | //添加一个地图实例 |
| 12 | addMap: function (name, text, instance) { | 12 | addMap: function (name, text, instance) { |
| 13 | maps[name] = {name: name, text: text, instance: instance}; | 13 | maps[name] = {name: name, text: text, instance: instance}; |
| 14 | - | ||
| 15 | - if (!currentMap) | ||
| 16 | - currentMap = name; | ||
| 17 | return mapProxy; | 14 | return mapProxy; |
| 18 | }, | 15 | }, |
| 19 | changeMap: function (mapName, cb) { | 16 | changeMap: function (mapName, cb) { |
| @@ -21,11 +18,11 @@ var gb_map_imap = (function () { | @@ -21,11 +18,11 @@ var gb_map_imap = (function () { | ||
| 21 | return; | 18 | return; |
| 22 | if (maps[mapName]) { | 19 | if (maps[mapName]) { |
| 23 | //原地图 destroy | 20 | //原地图 destroy |
| 24 | - var oldMap = maps[currentMap].instance; | ||
| 25 | - oldMap.destroy && oldMap.destroy(); | 21 | + if(currentMap){ |
| 22 | + var oldMap = maps[currentMap].instance; | ||
| 23 | + oldMap.destroy && oldMap.destroy(); | ||
| 24 | + } | ||
| 26 | //新地图 INIT | 25 | //新地图 INIT |
| 27 | - //var text = maps[mapName].text; | ||
| 28 | - //layer.msg('正在切换到' + text + '...', {icon : 16,shade : [ 0.6, '#393D49' ],time : 0}); | ||
| 29 | var newMap = maps[mapName].instance; | 26 | var newMap = maps[mapName].instance; |
| 30 | 27 | ||
| 31 | currentMap = mapName; | 28 | currentMap = mapName; |
| @@ -34,6 +31,9 @@ var gb_map_imap = (function () { | @@ -34,6 +31,9 @@ var gb_map_imap = (function () { | ||
| 34 | alertErr('不存在的地图实例' + mapName); | 31 | alertErr('不存在的地图实例' + mapName); |
| 35 | }, | 32 | }, |
| 36 | createCarIcon: createCarIcon, | 33 | createCarIcon: createCarIcon, |
| 34 | + busIcon: '/real_control_v2/assets/imgs/bus1-R.png', | ||
| 35 | + _color: color, | ||
| 36 | + //createCarIcon_angle: createCarIcon_angle, | ||
| 37 | createStationIcon: createStationIcon, | 37 | createStationIcon: createStationIcon, |
| 38 | call: function (f, opts) { | 38 | call: function (f, opts) { |
| 39 | var instance = maps[currentMap].instance; | 39 | var instance = maps[currentMap].instance; |
| @@ -43,7 +43,7 @@ var gb_map_imap = (function () { | @@ -43,7 +43,7 @@ var gb_map_imap = (function () { | ||
| 43 | alertErr('当前地图实例不支持操作:' + f); | 43 | alertErr('当前地图实例不支持操作:' + f); |
| 44 | return mapProxy; | 44 | return mapProxy; |
| 45 | } | 45 | } |
| 46 | - } | 46 | + }; |
| 47 | 47 | ||
| 48 | //绘制车辆icon | 48 | //绘制车辆icon |
| 49 | function createCarIcon(gps, w) { | 49 | function createCarIcon(gps, w) { |
| @@ -72,6 +72,49 @@ var gb_map_imap = (function () { | @@ -72,6 +72,49 @@ var gb_map_imap = (function () { | ||
| 72 | return canvas.toDataURL(); | 72 | return canvas.toDataURL(); |
| 73 | } | 73 | } |
| 74 | 74 | ||
| 75 | + //绘制车辆icon 带角度 | ||
| 76 | +/* var busIcon='data:image/png;base64,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'; | ||
| 77 | + function createCarIcon_angle(gps, w) { | ||
| 78 | + var canvas = $('<canvas></canvas>')[0]; | ||
| 79 | + var ctx = canvas.getContext('2d'); | ||
| 80 | + | ||
| 81 | + //旋转画布 | ||
| 82 | + | ||
| 83 | + //console.log('gps', gps);direction | ||
| 84 | + //车辆角度图片 | ||
| 85 | + var img = new Image(); | ||
| 86 | + img.src = busIcon; | ||
| 87 | + | ||
| 88 | + ctx.save(); | ||
| 89 | + ctx.translate(w/2, 25); | ||
| 90 | + ctx.rotate(-((gps.direction+300) * Math.PI / 180)); | ||
| 91 | + | ||
| 92 | + ctx.drawImage(img,-12, 0); | ||
| 93 | + | ||
| 94 | + ctx.restore(); | ||
| 95 | + | ||
| 96 | + var colours = color(gps); | ||
| 97 | + | ||
| 98 | + ctx.shadowOffsetX = 5; // 阴影Y轴偏移 | ||
| 99 | + ctx.shadowOffsetY = 5; // 阴影X轴偏移 | ||
| 100 | + ctx.shadowBlur = 1; // 模糊尺寸 | ||
| 101 | + ctx.shadowColor = colours.shadow; // 颜色 | ||
| 102 | + | ||
| 103 | + //绘制背景 | ||
| 104 | + if (!w) | ||
| 105 | + w = 70; | ||
| 106 | + | ||
| 107 | + ctx.roundRect(0, 0, w, 25, 5).stroke(); | ||
| 108 | + ctx.fillStyle = colours.bgColor; | ||
| 109 | + ctx.fill(); | ||
| 110 | + //文字 | ||
| 111 | + ctx.font = "14px arial"; | ||
| 112 | + ctx.fillStyle = "#fff"; | ||
| 113 | + ctx.fillText(gps.nbbm, 4, 18); | ||
| 114 | + | ||
| 115 | + return canvas.toDataURL(); | ||
| 116 | + }*/ | ||
| 117 | + | ||
| 75 | //绘制站点icon | 118 | //绘制站点icon |
| 76 | function createStationIcon(station, w) { | 119 | function createStationIcon(station, w) { |
| 77 | var canvas = $('<canvas></canvas>')[0]; | 120 | var canvas = $('<canvas></canvas>')[0]; |
src/main/resources/static/real_control_v2/mapmonitor/js/map/platform/baidu.js
| @@ -64,7 +64,8 @@ var gb_map_baidu = (function(){ | @@ -64,7 +64,8 @@ var gb_map_baidu = (function(){ | ||
| 64 | });*/ | 64 | });*/ |
| 65 | }, | 65 | }, |
| 66 | destroy: function(){ | 66 | destroy: function(){ |
| 67 | - realMarkers = {}; | 67 | + this.clearAll(); |
| 68 | + //realMarkers = {}; | ||
| 68 | //linePolyline = []; | 69 | //linePolyline = []; |
| 69 | }, | 70 | }, |
| 70 | //画线路图层 | 71 | //画线路图层 |
| @@ -205,8 +206,10 @@ var gb_map_baidu = (function(){ | @@ -205,8 +206,10 @@ var gb_map_baidu = (function(){ | ||
| 205 | //清除所有覆盖物 | 206 | //清除所有覆盖物 |
| 206 | realMarkers = {}; | 207 | realMarkers = {}; |
| 207 | polylines={}; | 208 | polylines={}; |
| 209 | + stationMarkers={}; | ||
| 210 | + electronicFences={}; | ||
| 211 | + carparks={}; | ||
| 208 | map.clearOverlays(); | 212 | map.clearOverlays(); |
| 209 | - | ||
| 210 | }, | 213 | }, |
| 211 | showGpsMarker:function (opt) { | 214 | showGpsMarker:function (opt) { |
| 212 | var chs = opt.chs; | 215 | var chs = opt.chs; |
| @@ -316,53 +319,6 @@ var gb_map_baidu = (function(){ | @@ -316,53 +319,6 @@ var gb_map_baidu = (function(){ | ||
| 316 | 319 | ||
| 317 | obj.bdPoints=bdPoints; | 320 | obj.bdPoints=bdPoints; |
| 318 | } | 321 | } |
| 319 | - | ||
| 320 | -/* function transCoordCarpark(carpark) { | ||
| 321 | - var pStr = carpark.gParkPoint.substring(9, carpark.gParkPoint.length - 2); | ||
| 322 | - var pArr = filterPolygonCoords(pStr.split(',')), coord, points=[]; | ||
| 323 | - | ||
| 324 | - $.each(pArr, function (i, str) { | ||
| 325 | - var c = str.split(' '); | ||
| 326 | - coord = TransGPS.wgsToBD(parseFloat(c[1]), parseFloat(c[0])); | ||
| 327 | - points.push(new BMap.Point(coord.lng, coord.lat)); | ||
| 328 | - }); | ||
| 329 | - carpark.bdPoints=points; | ||
| 330 | - } | ||
| 331 | - | ||
| 332 | - function transPolygonStation(opt) { | ||
| 333 | - var pStr = opt.polygon.substring(9, opt.polygon.length - 2); | ||
| 334 | - var pArr = filterPolygonCoords(pStr.split(',')), coord, points=[]; | ||
| 335 | - | ||
| 336 | - $.each(pArr, function (i, str) { | ||
| 337 | - var c = str.split(' '); | ||
| 338 | - coord = TransGPS.wgsToBD(parseFloat(c[1]), parseFloat(c[0])); | ||
| 339 | - points.push(new BMap.Point(coord.lng, coord.lat)); | ||
| 340 | - }); | ||
| 341 | - opt.bdPoints=points; | ||
| 342 | - }*/ | ||
| 343 | - | ||
| 344 | -/* //处理多边形点数组 | ||
| 345 | - function filterPolygonCoords(pArr) { | ||
| 346 | - var newArr=[]; | ||
| 347 | - //去掉已闭合的尾 | ||
| 348 | - var end=pArr.length - 1; | ||
| 349 | - if(pArr.length > 1 && pArr[0] == pArr[end]) | ||
| 350 | - pArr = pArr.slice(0, end); | ||
| 351 | - | ||
| 352 | - //去掉连续的重复点 | ||
| 353 | - var last; | ||
| 354 | - $.each(pArr, function (i, str) { | ||
| 355 | - if(last){ | ||
| 356 | - if(last != str) | ||
| 357 | - newArr.push(str); | ||
| 358 | - } | ||
| 359 | - else | ||
| 360 | - newArr.push(str); | ||
| 361 | - last = str; | ||
| 362 | - }); | ||
| 363 | - | ||
| 364 | - return newArr; | ||
| 365 | - }*/ | ||
| 366 | 322 | ||
| 367 | function transCoord(gps) { | 323 | function transCoord(gps) { |
| 368 | var coord = TransGPS.wgsToBD(gps.lat, gps.lon); | 324 | var coord = TransGPS.wgsToBD(gps.lat, gps.lon); |
| @@ -377,12 +333,15 @@ var gb_map_baidu = (function(){ | @@ -377,12 +333,15 @@ var gb_map_baidu = (function(){ | ||
| 377 | }; | 333 | }; |
| 378 | function createBDMarkerByGps(gpsData){ | 334 | function createBDMarkerByGps(gpsData){ |
| 379 | 335 | ||
| 336 | + | ||
| 337 | + //carIcon | ||
| 380 | var point = new BMap.Point(gpsData.bd_lon, gpsData.bd_lat); | 338 | var point = new BMap.Point(gpsData.bd_lon, gpsData.bd_lat); |
| 381 | var marker = new BMap.Marker(point); | 339 | var marker = new BMap.Marker(point); |
| 382 | 340 | ||
| 383 | //根据编码长度 计算marker 宽度 | 341 | //根据编码长度 计算marker 宽度 |
| 384 | var w = calcGpsMarkerWidth(gpsData.nbbm);//gpsData.nbbm.length * 10; | 342 | var w = calcGpsMarkerWidth(gpsData.nbbm);//gpsData.nbbm.length * 10; |
| 385 | - marker.setIcon(new BMap.Icon(gb_map_imap.createCarIcon(gpsData, w), new BMap.Size(w,25))); | 343 | + //渲染icon |
| 344 | + renderIcon(marker, gpsData, w); | ||
| 386 | 345 | ||
| 387 | marker._icon_width=w; | 346 | marker._icon_width=w; |
| 388 | marker.infoWindow = new BMap.InfoWindow(bd_gps_info_win_opts); | 347 | marker.infoWindow = new BMap.InfoWindow(bd_gps_info_win_opts); |
| @@ -399,6 +358,27 @@ var gb_map_baidu = (function(){ | @@ -399,6 +358,27 @@ var gb_map_baidu = (function(){ | ||
| 399 | return marker; | 358 | return marker; |
| 400 | } | 359 | } |
| 401 | 360 | ||
| 361 | + function renderIcon(marker, gpsData, w){ | ||
| 362 | + var config = gb_map_config.getConfig(); | ||
| 363 | + | ||
| 364 | + //如果需要标识角度 | ||
| 365 | + if(config.carIcon.angle){ | ||
| 366 | + | ||
| 367 | + var icon = new BMap.Icon(gb_map_imap.busIcon, new BMap.Size(24,24)); | ||
| 368 | + var label = new BMap.Label(gpsData.nbbm,{offset:new BMap.Size(-(w/2-10),-24)}); | ||
| 369 | + var color=gb_map_imap._color(gpsData).bgColor; | ||
| 370 | + | ||
| 371 | + label.setStyle({borderColor: color,borderRadius: '5px', padding: '1px 2px', color: '#fff', backgroundColor: color, font: 14}); | ||
| 372 | + marker.setIcon(icon); | ||
| 373 | + marker.setLabel(label); | ||
| 374 | + //旋转角度 | ||
| 375 | + marker.setRotation(gpsData.direction-90); | ||
| 376 | + | ||
| 377 | + } | ||
| 378 | + else | ||
| 379 | + marker.setIcon(new BMap.Icon(gb_map_imap.createCarIcon(gpsData, w), new BMap.Size(w,25))); | ||
| 380 | + } | ||
| 381 | + | ||
| 402 | 382 | ||
| 403 | function calcGpsMarkerWidth(nbbm) { | 383 | function calcGpsMarkerWidth(nbbm) { |
| 404 | var width=0; | 384 | var width=0; |
| @@ -440,12 +420,20 @@ var gb_map_baidu = (function(){ | @@ -440,12 +420,20 @@ var gb_map_baidu = (function(){ | ||
| 440 | } | 420 | } |
| 441 | 421 | ||
| 442 | function moveMarker(m, gps){ | 422 | function moveMarker(m, gps){ |
| 423 | + var config = gb_map_config.getConfig(); | ||
| 443 | m.setPosition(new BMap.Point(gps.bd_lon, gps.bd_lat)); | 424 | m.setPosition(new BMap.Point(gps.bd_lon, gps.bd_lat)); |
| 444 | m.gpsData = gps; | 425 | m.gpsData = gps; |
| 445 | //重新设置icon | 426 | //重新设置icon |
| 446 | //根据编码长度 计算marker 宽度 | 427 | //根据编码长度 计算marker 宽度 |
| 447 | var w = m._icon_width;//calcGpsMarkerWidth(gps.nbbm);//gps.nbbm.length * 10; | 428 | var w = m._icon_width;//calcGpsMarkerWidth(gps.nbbm);//gps.nbbm.length * 10; |
| 448 | - m.setIcon(new BMap.Icon(gb_map_imap.createCarIcon(gps, w), new BMap.Size(w,25))); | 429 | + |
| 430 | + renderIcon(m, gps, w); | ||
| 431 | + /*//如果需要标识角度 | ||
| 432 | + if(config.carIcon.angle) | ||
| 433 | + m.setIcon(new BMap.Icon(gb_map_imap.createCarIcon_angle(gps, w), new BMap.Size(w,50))); | ||
| 434 | + else | ||
| 435 | + m.setIcon(new BMap.Icon(gb_map_imap.createCarIcon(gps, w), new BMap.Size(w,25)));*/ | ||
| 436 | + //m.setIcon(new BMap.Icon(gb_map_imap.createCarIcon(gps, w), new BMap.Size(w,25))); | ||
| 449 | 437 | ||
| 450 | //更新 infoWindow | 438 | //更新 infoWindow |
| 451 | if(m.infoWindow.isOpen()){ | 439 | if(m.infoWindow.isOpen()){ |
src/main/resources/static/real_control_v2/mapmonitor/js/map/platform/gaode.js
| @@ -66,10 +66,7 @@ var gb_map_gaode = (function() { | @@ -66,10 +66,7 @@ var gb_map_gaode = (function() { | ||
| 66 | $('.leftUtils').addClass('gaode'); | 66 | $('.leftUtils').addClass('gaode'); |
| 67 | }, | 67 | }, |
| 68 | destroy:function(){ | 68 | destroy:function(){ |
| 69 | - realMarkers = {}; | ||
| 70 | - $('.mapRightWrap').removeClass('gaode'); | ||
| 71 | - $('.mapTools').removeClass('gaode'); | ||
| 72 | - $('.leftUtils').removeClass('gaode'); | 69 | + this.clearAll(); |
| 73 | }, | 70 | }, |
| 74 | traffic: function (enable) { | 71 | traffic: function (enable) { |
| 75 | if(enable) | 72 | if(enable) |
| @@ -80,6 +77,9 @@ var gb_map_gaode = (function() { | @@ -80,6 +77,9 @@ var gb_map_gaode = (function() { | ||
| 80 | clearAll: function () { | 77 | clearAll: function () { |
| 81 | realMarkers = {}; | 78 | realMarkers = {}; |
| 82 | polylines={}; | 79 | polylines={}; |
| 80 | + stationMarkers={}; | ||
| 81 | + electronicFences={}; | ||
| 82 | + carparks={}; | ||
| 83 | map.clearMap(); | 83 | map.clearMap(); |
| 84 | }, | 84 | }, |
| 85 | drawLine: function(opt){ | 85 | drawLine: function(opt){ |
| @@ -299,14 +299,12 @@ var gb_map_gaode = (function() { | @@ -299,14 +299,12 @@ var gb_map_gaode = (function() { | ||
| 299 | 299 | ||
| 300 | var marker = new AMap.Marker({ | 300 | var marker = new AMap.Marker({ |
| 301 | map: map, | 301 | map: map, |
| 302 | - position: [gps.gcj_lon, gps.gcj_lat], | ||
| 303 | - icon: new AMap.Icon({ | ||
| 304 | - size: new AMap.Size(w, 25), //图标大小 | ||
| 305 | - image: gb_map_imap.createCarIcon(gps, w) | ||
| 306 | - }), | ||
| 307 | - offset: new AMap.Pixel(-(w/2), -12) | 302 | + position: [gps.gcj_lon, gps.gcj_lat] |
| 308 | }); | 303 | }); |
| 309 | 304 | ||
| 305 | + //渲染icon | ||
| 306 | + renderIcon(marker, gps, w); | ||
| 307 | + | ||
| 310 | marker._icon_width=w; | 308 | marker._icon_width=w; |
| 311 | //绑定数据 | 309 | //绑定数据 |
| 312 | marker.gpsData = gps; | 310 | marker.gpsData = gps; |
| @@ -326,6 +324,28 @@ var gb_map_gaode = (function() { | @@ -326,6 +324,28 @@ var gb_map_gaode = (function() { | ||
| 326 | 324 | ||
| 327 | return marker; | 325 | return marker; |
| 328 | } | 326 | } |
| 327 | + | ||
| 328 | + function renderIcon(marker, gps, w) { | ||
| 329 | + var config = gb_map_config.getConfig(); | ||
| 330 | + | ||
| 331 | + //如果需要标识角度 | ||
| 332 | + if(config.carIcon.angle) { | ||
| 333 | + marker.setIcon(gb_map_imap.busIcon); | ||
| 334 | + marker.setAngle(gps.direction - 90); | ||
| 335 | + marker.setOffset(new AMap.Pixel(-(w / 2), -12)); | ||
| 336 | + | ||
| 337 | + marker.setLabel({ | ||
| 338 | + content: gps.nbbm, | ||
| 339 | + offset: new AMap.Pixel(-20, -20), | ||
| 340 | + }); | ||
| 341 | + } | ||
| 342 | + else{ | ||
| 343 | + marker.setIcon(new AMap.Icon({ | ||
| 344 | + size: new AMap.Size(w, 25), //图标大小 | ||
| 345 | + image: gb_map_imap.createCarIcon(gps, w) | ||
| 346 | + })); | ||
| 347 | + } | ||
| 348 | + } | ||
| 329 | 349 | ||
| 330 | //创建站点marker | 350 | //创建站点marker |
| 331 | function createStationMark(statio) { | 351 | function createStationMark(statio) { |
| @@ -370,10 +390,13 @@ var gb_map_gaode = (function() { | @@ -370,10 +390,13 @@ var gb_map_gaode = (function() { | ||
| 370 | 390 | ||
| 371 | //重新设置icon | 391 | //重新设置icon |
| 372 | var w = m._icon_width; | 392 | var w = m._icon_width; |
| 373 | - m.setIcon(new AMap.Icon({ | 393 | + //渲染icon |
| 394 | + renderIcon(marker, gps, w); | ||
| 395 | + | ||
| 396 | + /*m.setIcon(new AMap.Icon({ | ||
| 374 | size: new AMap.Size(w, 25), | 397 | size: new AMap.Size(w, 25), |
| 375 | image: gb_map_imap.createCarIcon(gps, w) | 398 | image: gb_map_imap.createCarIcon(gps, w) |
| 376 | - })); | 399 | + }));*/ |
| 377 | 400 | ||
| 378 | if(m.infoWindow.getIsOpen()) | 401 | if(m.infoWindow.getIsOpen()) |
| 379 | openWindow(m); | 402 | openWindow(m); |
src/main/resources/static/real_control_v2/mapmonitor/js/real.js
| 1 | var mapmonitor_load_ep = EventProxy.create('load_iMap', 'load_baidu', 'load_gaode', function () { | 1 | var mapmonitor_load_ep = EventProxy.create('load_iMap', 'load_baidu', 'load_gaode', function () { |
| 2 | moment.locale('zh-cn'); | 2 | moment.locale('zh-cn'); |
| 3 | - //地图 | ||
| 4 | - gb_map_imap.addMap('baidu', '百度地图', gb_map_baidu) | ||
| 5 | - .addMap('gaode', '高德地图', gb_map_gaode) | ||
| 6 | - .call('init'); | ||
| 7 | 3 | ||
| 8 | //init config form | 4 | //init config form |
| 9 | gb_map_config.init(); | 5 | gb_map_config.init(); |
| 10 | 6 | ||
| 7 | + //地图 | ||
| 8 | + gb_map_imap.addMap('baidu', '百度地图', gb_map_baidu) | ||
| 9 | + .addMap('gaode', '高德地图', gb_map_gaode) | ||
| 10 | + .changeMap(gb_map_config.getConfig().map_type); | ||
| 11 | + | ||
| 11 | //init tree | 12 | //init tree |
| 12 | gb_map_gps_tree.init(function () { | 13 | gb_map_gps_tree.init(function () { |
| 13 | gb_map_overlay_mge.init(); | 14 | gb_map_overlay_mge.init(); |
| @@ -18,7 +19,7 @@ var mapmonitor_load_ep = EventProxy.create('load_iMap', 'load_baidu', 'load_gaod | @@ -18,7 +19,7 @@ var mapmonitor_load_ep = EventProxy.create('load_iMap', 'load_baidu', 'load_gaod | ||
| 18 | handles: { | 19 | handles: { |
| 19 | 'n': '.real_bottom_panel #handle' | 20 | 'n': '.real_bottom_panel #handle' |
| 20 | }, | 21 | }, |
| 21 | - maxHeight: 650, | 22 | + maxHeight: 384, |
| 22 | minHeight: 18 | 23 | minHeight: 18 |
| 23 | }); | 24 | }); |
| 24 | }); | 25 | }); |