Commit 75dd9f6e5fc122e9657c9ebc64b1d38e7ff79e92

Authored by 潘钊
1 parent 7fe23b16

update

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 6 .z-depth-2 {
2 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 105 border: 1px solid #bfbcbc;*/
101 106  
102 107 position: absolute !important;
103   - height: 180px;
  108 + height: 124px;
104 109 bottom: 2px !important;
105 110 background: #fff;
106 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 152 */
148 153 .real_bottom_panel #handle{
149 154 width: 100%;
150   - height: 3px;
  155 + height: 4px;
151 156 top: -3px;
152 157 background-color: rgba(136, 137, 138, 0.49);
153 158 cursor: row-resize;
... ...
src/main/resources/static/real_control_v2/mapmonitor/fragments/map_config.html
... ... @@ -20,19 +20,10 @@
20 20 </div>
21 21  
22 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 23 <span class="uk-form-label">车辆图标</span>
33 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 27 </div>
37 28 </div>
38 29  
... ... @@ -81,7 +72,14 @@
81 72 </div>
82 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 83 </form>
86 84 </script>
87 85 </div>
... ...
src/main/resources/static/real_control_v2/mapmonitor/js/config.js
... ... @@ -86,7 +86,8 @@ var gb_map_config = (function () {
86 86 traffic: trafficSwitch,
87 87 spatial_data_station: spatial_data_station,
88 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 138 else
138 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 148 function recursion_get_attr(data, attr) {
142 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 6 var mapContainer = $('#mapContainer');
7 7 var maps = {};
8 8 //尝试从 localStorage 里获取默认的地图类型
9   - var currentMap = storage.getItem('real_map');
  9 + var currentMap;// = storage.getItem('real_map');
10 10 var mapProxy = {
11 11 //添加一个地图实例
12 12 addMap: function (name, text, instance) {
13 13 maps[name] = {name: name, text: text, instance: instance};
14   -
15   - if (!currentMap)
16   - currentMap = name;
17 14 return mapProxy;
18 15 },
19 16 changeMap: function (mapName, cb) {
... ... @@ -21,11 +18,11 @@ var gb_map_imap = (function () {
21 18 return;
22 19 if (maps[mapName]) {
23 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 25 //新地图 INIT
27   - //var text = maps[mapName].text;
28   - //layer.msg('正在切换到' + text + '...', {icon : 16,shade : [ 0.6, '#393D49' ],time : 0});
29 26 var newMap = maps[mapName].instance;
30 27  
31 28 currentMap = mapName;
... ... @@ -34,6 +31,9 @@ var gb_map_imap = (function () {
34 31 alertErr('不存在的地图实例' + mapName);
35 32 },
36 33 createCarIcon: createCarIcon,
  34 + busIcon: '/real_control_v2/assets/imgs/bus1-R.png',
  35 + _color: color,
  36 + //createCarIcon_angle: createCarIcon_angle,
37 37 createStationIcon: createStationIcon,
38 38 call: function (f, opts) {
39 39 var instance = maps[currentMap].instance;
... ... @@ -43,7 +43,7 @@ var gb_map_imap = (function () {
43 43 alertErr('当前地图实例不支持操作:' + f);
44 44 return mapProxy;
45 45 }
46   - }
  46 + };
47 47  
48 48 //绘制车辆icon
49 49 function createCarIcon(gps, w) {
... ... @@ -72,6 +72,49 @@ var gb_map_imap = (function () {
72 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 118 //绘制站点icon
76 119 function createStationIcon(station, w) {
77 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 64 });*/
65 65 },
66 66 destroy: function(){
67   - realMarkers = {};
  67 + this.clearAll();
  68 + //realMarkers = {};
68 69 //linePolyline = [];
69 70 },
70 71 //画线路图层
... ... @@ -205,8 +206,10 @@ var gb_map_baidu = (function(){
205 206 //清除所有覆盖物
206 207 realMarkers = {};
207 208 polylines={};
  209 + stationMarkers={};
  210 + electronicFences={};
  211 + carparks={};
208 212 map.clearOverlays();
209   -
210 213 },
211 214 showGpsMarker:function (opt) {
212 215 var chs = opt.chs;
... ... @@ -316,53 +319,6 @@ var gb_map_baidu = (function(){
316 319  
317 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 323 function transCoord(gps) {
368 324 var coord = TransGPS.wgsToBD(gps.lat, gps.lon);
... ... @@ -377,12 +333,15 @@ var gb_map_baidu = (function(){
377 333 };
378 334 function createBDMarkerByGps(gpsData){
379 335  
  336 +
  337 + //carIcon
380 338 var point = new BMap.Point(gpsData.bd_lon, gpsData.bd_lat);
381 339 var marker = new BMap.Marker(point);
382 340  
383 341 //根据编码长度 计算marker 宽度
384 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 346 marker._icon_width=w;
388 347 marker.infoWindow = new BMap.InfoWindow(bd_gps_info_win_opts);
... ... @@ -399,6 +358,27 @@ var gb_map_baidu = (function(){
399 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 383 function calcGpsMarkerWidth(nbbm) {
404 384 var width=0;
... ... @@ -440,12 +420,20 @@ var gb_map_baidu = (function(){
440 420 }
441 421  
442 422 function moveMarker(m, gps){
  423 + var config = gb_map_config.getConfig();
443 424 m.setPosition(new BMap.Point(gps.bd_lon, gps.bd_lat));
444 425 m.gpsData = gps;
445 426 //重新设置icon
446 427 //根据编码长度 计算marker 宽度
447 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 438 //更新 infoWindow
451 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 66 $('.leftUtils').addClass('gaode');
67 67 },
68 68 destroy:function(){
69   - realMarkers = {};
70   - $('.mapRightWrap').removeClass('gaode');
71   - $('.mapTools').removeClass('gaode');
72   - $('.leftUtils').removeClass('gaode');
  69 + this.clearAll();
73 70 },
74 71 traffic: function (enable) {
75 72 if(enable)
... ... @@ -80,6 +77,9 @@ var gb_map_gaode = (function() {
80 77 clearAll: function () {
81 78 realMarkers = {};
82 79 polylines={};
  80 + stationMarkers={};
  81 + electronicFences={};
  82 + carparks={};
83 83 map.clearMap();
84 84 },
85 85 drawLine: function(opt){
... ... @@ -299,14 +299,12 @@ var gb_map_gaode = (function() {
299 299  
300 300 var marker = new AMap.Marker({
301 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 308 marker._icon_width=w;
311 309 //绑定数据
312 310 marker.gpsData = gps;
... ... @@ -326,6 +324,28 @@ var gb_map_gaode = (function() {
326 324  
327 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 350 //创建站点marker
331 351 function createStationMark(statio) {
... ... @@ -370,10 +390,13 @@ var gb_map_gaode = (function() {
370 390  
371 391 //重新设置icon
372 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 397 size: new AMap.Size(w, 25),
375 398 image: gb_map_imap.createCarIcon(gps, w)
376   - }));
  399 + }));*/
377 400  
378 401 if(m.infoWindow.getIsOpen())
379 402 openWindow(m);
... ...
src/main/resources/static/real_control_v2/mapmonitor/js/real.js
1 1 var mapmonitor_load_ep = EventProxy.create('load_iMap', 'load_baidu', 'load_gaode', function () {
2 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 4 //init config form
9 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 12 //init tree
12 13 gb_map_gps_tree.init(function () {
13 14 gb_map_overlay_mge.init();
... ... @@ -18,7 +19,7 @@ var mapmonitor_load_ep = EventProxy.create(&#39;load_iMap&#39;, &#39;load_baidu&#39;, &#39;load_gaod
18 19 handles: {
19 20 'n': '.real_bottom_panel #handle'
20 21 },
21   - maxHeight: 650,
  22 + maxHeight: 384,
22 23 minHeight: 18
23 24 });
24 25 });
... ...