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 | 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('load_iMap', 'load_baidu', '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 | }); | ... | ... |