Commit 24e0b591148b1d3734f847a1f204f0a7a71fd00f
1 parent
9977b66b
update...
Showing
10 changed files
with
202 additions
and
62 deletions
src/main/java/com/bsth/data/gpsdata/arrival/handlers/InOutStationSignalHandle.java
| ... | ... | @@ -253,20 +253,22 @@ public class InOutStationSignalHandle extends SignalHandle{ |
| 253 | 253 | //已完成班次数 |
| 254 | 254 | int doneSum = dayOfSchedule.doneSum(sch.getClZbh()); |
| 255 | 255 | ScheduleRealInfo next = dayOfSchedule.next(sch); |
| 256 | - //通知客户端 | |
| 257 | - sendUtils.sendZdsj(sch, next, doneSum); | |
| 258 | 256 | //持久化 |
| 259 | 257 | dayOfSchedule.save(sch); |
| 260 | 258 | |
| 261 | - //准备执行下一个班次 | |
| 262 | - if (next != null) { | |
| 259 | + if(next != null){ | |
| 263 | 260 | next.setQdzArrDatesj(sch.getZdsjActual()); |
| 264 | 261 | dayOfSchedule.addExecPlan(next); |
| 265 | 262 | //进站既进场 |
| 266 | 263 | inStationAndInPark(sch, next); |
| 264 | + } | |
| 265 | + //通知客户端 | |
| 266 | + sendUtils.sendZdsj(sch, next, doneSum); | |
| 267 | + | |
| 268 | + //准备执行下一个班次 | |
| 269 | + if (next != null) { | |
| 267 | 270 | //将gps转换为下一个班次走向的站内信号 |
| 268 | 271 | transformUpdown(gps, next); |
| 269 | - | |
| 270 | 272 | //下发调度指令 |
| 271 | 273 | directiveService.send60Dispatch(next, doneSum, "到站@系统"); |
| 272 | 274 | ... | ... |
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
| ... | ... | @@ -11,7 +11,10 @@ import com.bsth.data.directive.DirectivesPstThread; |
| 11 | 11 | import com.bsth.data.gpsdata.GpsRealData; |
| 12 | 12 | import com.bsth.data.gpsdata.recovery.GpsDataRecovery; |
| 13 | 13 | import com.bsth.data.schedule.late_adjust.ScheduleLateThread; |
| 14 | -import com.bsth.data.schedule.thread.*; | |
| 14 | +import com.bsth.data.schedule.thread.CalcOilThread; | |
| 15 | +import com.bsth.data.schedule.thread.SchedulePstThread; | |
| 16 | +import com.bsth.data.schedule.thread.ScheduleRefreshThread; | |
| 17 | +import com.bsth.data.schedule.thread.SubmitToTrafficManage; | |
| 15 | 18 | import com.bsth.entity.realcontrol.LineConfig; |
| 16 | 19 | import com.bsth.entity.realcontrol.ScheduleRealInfo; |
| 17 | 20 | import com.bsth.entity.schedule.SchedulePlanInfo; |
| ... | ... | @@ -146,7 +149,7 @@ public class DayOfSchedule implements CommandLineRunner { |
| 146 | 149 | //入库 |
| 147 | 150 | // Application.mainServices.scheduleWithFixedDelay(schedulePstThread, 60, 30, TimeUnit.SECONDS); |
| 148 | 151 | //班次误点扫描 |
| 149 | -// Application.mainServices.scheduleWithFixedDelay(scheduleLateThread, 60, 60, TimeUnit.SECONDS); | |
| 152 | +// Application.mainServices.scheduleWithFixedDelay(scheduleLateThread, 60, 30, TimeUnit.SECONDS); | |
| 150 | 153 | |
| 151 | 154 | //每天凌晨2点20提交数据到运管处 |
| 152 | 155 | long diff = (DateUtils.getTimestamp() + 1000 * 60 * 140) - System.currentTimeMillis(); | ... | ... |
src/main/java/com/bsth/data/schedule/late_adjust/LateAdjustHandle.java
| ... | ... | @@ -116,17 +116,20 @@ public class LateAdjustHandle implements ApplicationContextAware{ |
| 116 | 116 | return; |
| 117 | 117 | |
| 118 | 118 | //进的是班次起点 |
| 119 | - if(gps.getStopNo().equals(sch.getQdzCode()) | |
| 119 | + if(gps.getStationName().equals(sch.getQdzName()) | |
| 120 | 120 | && sch.getLateMinute() > 0){ |
| 121 | 121 | //自动调整待发 到达时间 + 停靠时间 |
| 122 | - long dt = gps.getTimestamp() + (Long.parseLong(String.valueOf(sch.getLateMinute() * 60 * 1000))); | |
| 122 | + long dt = (long) (gps.getTimestamp() + (sch.getLateMinute() * 60 * 1000)); | |
| 123 | 123 | sch.setDfsjAll(dt); |
| 124 | 124 | sch.setDfAuto(true); |
| 125 | + //取消应发未到标记 | |
| 126 | + sch.setLate2(false); | |
| 125 | 127 | |
| 126 | 128 | lateSchMap.remove(sch.getClZbh()); |
| 127 | 129 | logger.info("【应发未到】车辆到站 " + sch.getClZbh() + " -" + sch.getDfsj() + " -到站时间:" + gps.getTimestamp() + " -停靠时间:" + sch.getLateMinute() + " -自动设置的待发时间:" + dt); |
| 128 | 130 | } |
| 129 | 131 | }catch (Exception e){ |
| 132 | + e.printStackTrace(); | |
| 130 | 133 | logger.error("", e); |
| 131 | 134 | } |
| 132 | 135 | } | ... | ... |
src/main/java/com/bsth/data/schedule/late_adjust/ScheduleLateThread.java
| ... | ... | @@ -44,11 +44,14 @@ public class ScheduleLateThread extends Thread{ |
| 44 | 44 | ScheduleRealInfo sch; |
| 45 | 45 | for(int i = 0; i < size; i ++){ |
| 46 | 46 | sch = all.get(i); |
| 47 | - if(sch.getDfsjT() > t || sch.isLate()) | |
| 47 | + if(sch.getDfsjT() > t) | |
| 48 | 48 | break; |
| 49 | 49 | |
| 50 | + if(sch.isLate()) | |
| 51 | + continue; | |
| 52 | + | |
| 50 | 53 | if(sch.getStatus() == 0 |
| 51 | - && sch.getFcsjActual() == null){ | |
| 54 | + && StringUtils.isEmpty(sch.getFcsjActual())){ | |
| 52 | 55 | |
| 53 | 56 | //检查应发未到 当前班次无起点到达时间 |
| 54 | 57 | if(StringUtils.isEmpty(sch.getQdzArrDateSJ())){ | ... | ... |
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
| ... | ... | @@ -1049,6 +1049,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 1049 | 1049 | ScheduleRealInfo next = dayOfSchedule.next(sch); |
| 1050 | 1050 | if (null != next) { |
| 1051 | 1051 | next.setQdzArrDateSJ(zdsjActual); |
| 1052 | + next.setLate2(false); | |
| 1052 | 1053 | ts.add(next); |
| 1053 | 1054 | } |
| 1054 | 1055 | ... | ... |
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/sub_task/add_sub_task_range_turn.html
| ... | ... | @@ -27,8 +27,11 @@ |
| 27 | 27 | </div> |
| 28 | 28 | </div> |
| 29 | 29 | </div> |
| 30 | - <div class="uk-width-2-4" style="padding-left: 28px;"> | |
| 31 | - <h6 style="color: #a7a5a5;margin-top: 35px;"><i class="uk-icon-question-circle"> </i> | |
| 30 | + <div class="uk-width-2-4" style="padding: 20px 0 0 28px;"> | |
| 31 | + <label> | |
| 32 | + <input type="checkbox" id="emptyTurnCbox"> 调头后空驶回起点 | |
| 33 | + </label> | |
| 34 | + <h6 style="color: #a7a5a5;margin-top: 0;"><i class="uk-icon-question-circle"> </i> | |
| 32 | 35 | 如果“调头站点”在另一个走向不存在,你需要手动选择第二个营运起点</h6> |
| 33 | 36 | </div> |
| 34 | 37 | </div> |
| ... | ... | @@ -178,7 +181,7 @@ |
| 178 | 181 | </div> |
| 179 | 182 | </div> |
| 180 | 183 | <div class="uk-width-7-10 pl5"> |
| 181 | - <input type="time" name="startDate" value="{{sch.dfsj}}" required disabled> | |
| 184 | + <input type="time" name="startDate" value="{{sch.dfsj}}" required > | |
| 182 | 185 | </div> |
| 183 | 186 | </div> |
| 184 | 187 | <div class="uk-grid"> |
| ... | ... | @@ -188,7 +191,7 @@ |
| 188 | 191 | </div> |
| 189 | 192 | </div> |
| 190 | 193 | <div class="uk-width-7-10 pl5"> |
| 191 | - <input type="time" name="endDate" value="{{sch.zdsj}}" required> | |
| 194 | + <input type="time" name="endDate" value="{{sch.zdsj}}" > | |
| 192 | 195 | </div> |
| 193 | 196 | </div> |
| 194 | 197 | </script> |
| ... | ... | @@ -295,7 +298,7 @@ |
| 295 | 298 | |
| 296 | 299 | //营运2 |
| 297 | 300 | nsf.html(template('range_turn_child_service-temp', nextData)); |
| 298 | - disabledField(nsf, 'endDate'); | |
| 301 | + disabledField(nsf, 'startDate'); | |
| 299 | 302 | //烂班1 |
| 300 | 303 | cdf.html(template('range_turn_child_destroy-temp', currData)); |
| 301 | 304 | disabledField(cdf, 'endStation'); |
| ... | ... | @@ -585,6 +588,21 @@ |
| 585 | 588 | btmDrawer.data('name', id).data('url', url).trigger('drawer_show'); |
| 586 | 589 | } |
| 587 | 590 | } |
| 591 | + | |
| 592 | + /** | |
| 593 | + * 选择空驶调头 | |
| 594 | + */ | |
| 595 | + $('#emptyTurnCbox', modal).on('click', function () { | |
| 596 | + if(this.checked){ | |
| 597 | + //全程烂班 | |
| 598 | + $('[name=endStation]', ndf).val(nextSch.zdzCode).attr('disabled'); | |
| 599 | + //空驶回起点 | |
| 600 | + | |
| 601 | + } | |
| 602 | + else{ | |
| 603 | + | |
| 604 | + } | |
| 605 | + }); | |
| 588 | 606 | })(); |
| 589 | 607 | </script> |
| 590 | 608 | </div> |
| 591 | 609 | \ No newline at end of file | ... | ... |
src/main/resources/static/real_control_v2/js/line_schedule/sch_table.js
| ... | ... | @@ -100,49 +100,12 @@ var gb_schedule_table = (function () { |
| 100 | 100 | gb_ct_table.enableSort($('.ct_table', content), reset_seq_no, gb_schedule_table_dbclick.init); |
| 101 | 101 | //dbclick event |
| 102 | 102 | gb_schedule_table_dbclick.init(); |
| 103 | - //点击实发,show detail | |
| 104 | - fcsjActualCellQtip(); | |
| 103 | + //双击实发 | |
| 104 | + gb_schedule_table_dbclick.sfsjCellClick($('dd.fcsjActualCell')); | |
| 105 | 105 | cb && cb(); |
| 106 | 106 | }); |
| 107 | 107 | }; |
| 108 | 108 | |
| 109 | - function fcsjActualCellQtip() { | |
| 110 | - //单击实发单元格显示详细信息 | |
| 111 | - $(document).on('click', 'dd.fcsjActualCell', function () { | |
| 112 | - var that = this; | |
| 113 | - $(that).qtip({ | |
| 114 | - show: true, | |
| 115 | - content: { | |
| 116 | - text: function (e) { | |
| 117 | - var lineCode = $(that).parents('li.line_schedule').data('id') | |
| 118 | - , id = $(that).parents('dl').data('id') | |
| 119 | - , sch = line2Schedule[lineCode][id]; | |
| 120 | - return temps['sfsj_sch-detail-temp'](sch); | |
| 121 | - } | |
| 122 | - } | |
| 123 | - , style: { | |
| 124 | - classes: 'qtip-dark qtip-rounded qtip-shadow' | |
| 125 | - }, | |
| 126 | - hide: { | |
| 127 | - fixed: true, | |
| 128 | - delay: 300 | |
| 129 | - }, | |
| 130 | - position: { | |
| 131 | - target: that, | |
| 132 | - my: 'center left', | |
| 133 | - at: 'center right' | |
| 134 | - }, | |
| 135 | - events: { | |
| 136 | - hidden: function (event, api) { | |
| 137 | - $(this).qtip('destroy', true); | |
| 138 | - } | |
| 139 | - } | |
| 140 | - }); | |
| 141 | - }); | |
| 142 | - | |
| 143 | - //双击 | |
| 144 | - gb_schedule_table_dbclick.sfsjCellClick($('dd.fcsjActualCell')); | |
| 145 | - } | |
| 146 | 109 | |
| 147 | 110 | //重置序号 |
| 148 | 111 | var reset_seq_no = function (dls) { |
| ... | ... | @@ -174,16 +137,21 @@ var gb_schedule_table = (function () { |
| 174 | 137 | |
| 175 | 138 | //新增一个班次,附带更新的班次 |
| 176 | 139 | var insertSchedule = function (sch, upArr) { |
| 140 | + var xls = {}; | |
| 141 | + xls[sch.xlBm] = 1; | |
| 177 | 142 | line2Schedule[sch.xlBm][sch.id] = sch; |
| 178 | 143 | //update |
| 179 | 144 | if (isArray(upArr)) { |
| 180 | 145 | $.each(upArr, function () { |
| 181 | 146 | line2Schedule[this.xlBm][this.id] = this; |
| 147 | + xls[this.xlBm] = 1; | |
| 182 | 148 | }); |
| 183 | 149 | } |
| 184 | 150 | |
| 185 | 151 | //重新渲染表格 |
| 186 | - reRenderTable(sch.xlBm); | |
| 152 | + for(var xlBm in xls){ | |
| 153 | + reRenderTable(sch.xlBm); | |
| 154 | + } | |
| 187 | 155 | //定位到新添加的班次 |
| 188 | 156 | scroToDl(sch); |
| 189 | 157 | }; |
| ... | ... | @@ -350,6 +318,39 @@ var gb_schedule_table = (function () { |
| 350 | 318 | markerLastSch([sch]); |
| 351 | 319 | }; |
| 352 | 320 | |
| 321 | + //单击实发单元格显示详细信息 | |
| 322 | + $(document).on('click', 'dd.fcsjActualCell', function () { | |
| 323 | + var that = this; | |
| 324 | + $(that).qtip({ | |
| 325 | + show: true, | |
| 326 | + content: { | |
| 327 | + text: function (e) { | |
| 328 | + var lineCode = $(that).parents('li.line_schedule').data('id') | |
| 329 | + , id = $(that).parents('dl').data('id') | |
| 330 | + , sch = line2Schedule[lineCode][id]; | |
| 331 | + return temps['sfsj_sch-detail-temp'](sch); | |
| 332 | + } | |
| 333 | + } | |
| 334 | + , style: { | |
| 335 | + classes: 'qtip-dark qtip-rounded qtip-shadow' | |
| 336 | + }, | |
| 337 | + hide: { | |
| 338 | + fixed: true, | |
| 339 | + delay: 300 | |
| 340 | + }, | |
| 341 | + position: { | |
| 342 | + target: that, | |
| 343 | + my: 'center left', | |
| 344 | + at: 'center right' | |
| 345 | + }, | |
| 346 | + events: { | |
| 347 | + hidden: function (event, api) { | |
| 348 | + $(this).qtip('destroy', true); | |
| 349 | + } | |
| 350 | + } | |
| 351 | + }); | |
| 352 | + }); | |
| 353 | + | |
| 353 | 354 | //拖拽选中... |
| 354 | 355 | var seq_nos = '.line-schedule-table .ct_table_body>dl>dd.seq_no'; |
| 355 | 356 | var drag_strat; |
| ... | ... | @@ -601,6 +602,14 @@ var gb_schedule_table = (function () { |
| 601 | 602 | return dfCell; |
| 602 | 603 | }; |
| 603 | 604 | |
| 605 | + | |
| 606 | + /** | |
| 607 | + * 刷新页面的所有线路班次 | |
| 608 | + */ | |
| 609 | + var refreshAll = function () { | |
| 610 | + show(); | |
| 611 | + }; | |
| 612 | + | |
| 604 | 613 | return { |
| 605 | 614 | show: show, |
| 606 | 615 | findScheduleByLine: findScheduleByLine, |
| ... | ... | @@ -620,6 +629,7 @@ var gb_schedule_table = (function () { |
| 620 | 629 | addRemarks: addRemarks, |
| 621 | 630 | reLoadAndRefresh: reLoadAndRefresh, |
| 622 | 631 | showLateBadge: showLateBadge, |
| 623 | - cancelLateBadge: cancelLateBadge | |
| 632 | + cancelLateBadge: cancelLateBadge, | |
| 633 | + refreshAll: refreshAll | |
| 624 | 634 | }; |
| 625 | 635 | })(); | ... | ... |
src/main/resources/static/real_control_v2/js/line_schedule/search.js
| ... | ... | @@ -78,6 +78,8 @@ var gb_sch_search = (function() { |
| 78 | 78 | //uikit 会记住上一次搜索值,触发keyup以清空该值 |
| 79 | 79 | $('.sch-search-autocom input', cont).val('').trigger('keyup').parent().removeClass('active'); |
| 80 | 80 | $('.line-schedule-table .ct_table_body dl._search_hide', cont).removeClass('_search_hide'); |
| 81 | + //更新滚动条高度 | |
| 82 | + $('.ct_table_wrap', cont).perfectScrollbar('update'); | |
| 81 | 83 | } |
| 82 | 84 | |
| 83 | 85 | function execSch(gps) { |
| ... | ... | @@ -109,6 +111,9 @@ var gb_sch_search = (function() { |
| 109 | 111 | if (car != $(dds[2]).data('nbbm')) |
| 110 | 112 | $(this).addClass('_search_hide'); |
| 111 | 113 | }); |
| 114 | + | |
| 115 | + //滚动条置顶 | |
| 116 | + $(tbody).parents('.ct_table_wrap')[0].scrollTop = 0; | |
| 112 | 117 | } |
| 113 | 118 | |
| 114 | 119 | return { | ... | ... |
src/main/resources/static/real_control_v2/js/websocket/sch_websocket.js
| ... | ... | @@ -13,6 +13,10 @@ var gb_sch_websocket = (function () { |
| 13 | 13 | var new_conn = function () { |
| 14 | 14 | schSock = new SockJS('/sockjs/realcontrol'); |
| 15 | 15 | schSock.onopen = function (e) { |
| 16 | + if(reConnCount && reConnCount > 1){ | |
| 17 | + gb_schedule_table.refreshAll(); | |
| 18 | + console.log('重新连接,刷新班次'); | |
| 19 | + } | |
| 16 | 20 | reConnCount = 1; |
| 17 | 21 | clearInterval(recInterval); |
| 18 | 22 | console.log('webSocket[realcontrol] onopen'); |
| ... | ... | @@ -101,6 +105,7 @@ var gb_sch_websocket = (function () { |
| 101 | 105 | * @param msg |
| 102 | 106 | */ |
| 103 | 107 | var autoWdtz = function (msg) { |
| 108 | + debugger | |
| 104 | 109 | var schId = msg.id; |
| 105 | 110 | var minute = msg.minute; |
| 106 | 111 | var lineCode = msg.lineCode; | ... | ... |
src/main/resources/static/real_control_v2/mapmonitor/fragments/playback_v2/main.html
| ... | ... | @@ -169,7 +169,14 @@ |
| 169 | 169 | <input type="checkbox" name="stationName"> 站点名称 |
| 170 | 170 | </label> |
| 171 | 171 | <label> |
| 172 | - <a>停车场 <i class="uk-icon-angle-down"></i></a> | |
| 172 | + <div class="uk-button-dropdown" data-uk-dropdown> | |
| 173 | + <a>停车场 <i class="uk-icon-angle-down"></i></a> | |
| 174 | + <div class="uk-dropdown uk-dropdown-scrollable" style="max-height: 300px;"> | |
| 175 | + <ul class="uk-nav uk-nav-dropdown parks_list"> | |
| 176 | + | |
| 177 | + </ul> | |
| 178 | + </div> | |
| 179 | + </div> | |
| 173 | 180 | </label> |
| 174 | 181 | </form> |
| 175 | 182 | </div> |
| ... | ... | @@ -249,6 +256,15 @@ |
| 249 | 256 | </dl> |
| 250 | 257 | {{/each}} |
| 251 | 258 | </script> |
| 259 | + | |
| 260 | + <script id="pb_park_list_dropdown-temp" type="text/html"> | |
| 261 | + {{each list as p i}} | |
| 262 | + <li data-code="{{p.parkCode}}" ><a>{{p.parkName}}</a></li> | |
| 263 | + {{if i == 0}} | |
| 264 | + <li class="uk-nav-divider"></li> | |
| 265 | + {{/if}} | |
| 266 | + {{/each}} | |
| 267 | + </script> | |
| 252 | 268 | <script> |
| 253 | 269 | (function () { |
| 254 | 270 | var modal = '#map-playback2-modal', gpsArray; |
| ... | ... | @@ -713,6 +729,8 @@ |
| 713 | 729 | var routes;//路段 |
| 714 | 730 | var stations;//站点 |
| 715 | 731 | var parks;//停车场 |
| 732 | + //停车场编码和Polygon对照 | |
| 733 | + var parkPolygons={}; | |
| 716 | 734 | |
| 717 | 735 | var initData = function (rs) { |
| 718 | 736 | var gpsArray = rs.list; |
| ... | ... | @@ -721,13 +739,70 @@ |
| 721 | 739 | var lineCode = gpsArray[0].lineId; |
| 722 | 740 | //从地图模块获取站点数据 |
| 723 | 741 | stations = gb_map_spatial_data.getStationArray(lineCode); |
| 724 | - //从地图模块获取停车场数据 | |
| 725 | - parks = gb_map_spatial_data.carparkArray(); | |
| 742 | + //停车场下拉菜单 | |
| 743 | + initDropdownList(lineCode); | |
| 744 | + | |
| 726 | 745 | //从localStorage 获取路段 |
| 727 | 746 | routes = JSON.parse(storage.getItem(lineCode + '_route')); |
| 728 | 747 | routes = [routes.up_bd, routes.down_bd]; |
| 729 | 748 | }; |
| 730 | 749 | |
| 750 | + /** | |
| 751 | + * 初始化停车场下拉菜单 | |
| 752 | + */ | |
| 753 | + var initDropdownList = function (lineCode) { | |
| 754 | + //从地图模块获取停车场数据 | |
| 755 | + parks = gb_map_spatial_data.carparkArray(); | |
| 756 | + console.log('parksparks', parks); | |
| 757 | + //将线路标准停车场排在第一个 | |
| 758 | + var information = gb_data_basic.getLineInformation(lineCode); | |
| 759 | + var index; | |
| 760 | + for(var i = 0,p; p=parks[i++];){ | |
| 761 | + if(p.parkCode == information.carPark){ | |
| 762 | + index = i - 1; | |
| 763 | + break; | |
| 764 | + } | |
| 765 | + } | |
| 766 | + parks[index] = parks.splice(0, 1 , parks[index])[0]; | |
| 767 | + //渲染 | |
| 768 | + var htmlStr = template('pb_park_list_dropdown-temp', {list: parks}); | |
| 769 | + $('.buffer_area_form .parks_list', modal).html(htmlStr); | |
| 770 | + | |
| 771 | + //停车场点击 | |
| 772 | + $('.buffer_area_form .parks_list>li', modal).on('click', function () { | |
| 773 | + var code = $(this).data('code'); | |
| 774 | + | |
| 775 | + if(!parkPolygons[code]){ | |
| 776 | + var park; | |
| 777 | + $.each(parks, function () { | |
| 778 | + if(this.parkCode==code){park = this;return false;} | |
| 779 | + }); | |
| 780 | + | |
| 781 | + transMultiWGSToBd(park); | |
| 782 | + var polygon = new BMap.Polygon(park.bdPoints, {strokeColor: 'red', strokeWeight: 1}); | |
| 783 | + map.addOverlay(polygon); | |
| 784 | + parkPolygons[code] = polygon; | |
| 785 | + //中心点 | |
| 786 | + var ts = park.gCenterPoint.split(' ') | |
| 787 | + ,coord = TransGPS.wgsToBD(parseFloat(ts[1]), parseFloat(ts[0])); | |
| 788 | + polygon._centerPoint = new BMap.Point(coord.lng, coord.lat); | |
| 789 | + //绘制名称label | |
| 790 | + var style = {backgroundColor: "rgba(255, 255, 255, 0.69)",color : "red", borderColor: "red", fontSize : "12px", height : "16px", lineHeight : "16px", fontFamily:"微软雅黑"} | |
| 791 | + var width = park.parkName.length * 12; | |
| 792 | + var label = new BMap.Label(park.parkName, { | |
| 793 | + position:polygon._centerPoint, | |
| 794 | + offset: new BMap.Size(-(width / 2), -27) | |
| 795 | + }); | |
| 796 | + label.setStyle(style); | |
| 797 | + map.addOverlay(label); | |
| 798 | + } | |
| 799 | + | |
| 800 | + //定位到polygon | |
| 801 | + var polygon=parkPolygons[code]; | |
| 802 | + map.panTo(polygon._centerPoint); | |
| 803 | + }); | |
| 804 | + }; | |
| 805 | + | |
| 731 | 806 | |
| 732 | 807 | /** |
| 733 | 808 | * 更新车辆位置 |
| ... | ... | @@ -866,8 +941,10 @@ |
| 866 | 941 | map.addOverlay(circle); |
| 867 | 942 | }; |
| 868 | 943 | |
| 869 | - var drawPolygon = function () { | |
| 870 | - | |
| 944 | + var drawPolygon = function (station) { | |
| 945 | + transMultiWGSToBd(station); | |
| 946 | + var polygon = new BMap.Polygon(station.bdPoints, {strokeColor: '#000000', strokeWeight: 1}); | |
| 947 | + map.addOverlay(polygon); | |
| 871 | 948 | }; |
| 872 | 949 | |
| 873 | 950 | /** |
| ... | ... | @@ -883,6 +960,7 @@ |
| 883 | 960 | trailArray=[]; |
| 884 | 961 | trailPolyline = null; |
| 885 | 962 | gpsMarker = null; |
| 963 | + parkPolygons = {}; | |
| 886 | 964 | }; |
| 887 | 965 | |
| 888 | 966 | /** |
| ... | ... | @@ -1012,6 +1090,18 @@ |
| 1012 | 1090 | reset: reset |
| 1013 | 1091 | } |
| 1014 | 1092 | })(); |
| 1093 | + | |
| 1094 | + function transMultiWGSToBd(obj) { | |
| 1095 | + if(!obj._gPoints) | |
| 1096 | + return; | |
| 1097 | + var bdPoints = [],coord; | |
| 1098 | + $.each(obj._gPoints, function () { | |
| 1099 | + coord = TransGPS.wgsToBD(this.lat, this.lng); | |
| 1100 | + bdPoints.push(new BMap.Point(coord.lng, coord.lat)); | |
| 1101 | + }); | |
| 1102 | + | |
| 1103 | + obj.bdPoints=bdPoints; | |
| 1104 | + } | |
| 1015 | 1105 | })(); |
| 1016 | 1106 | </script> |
| 1017 | 1107 | </div> |
| 1018 | 1108 | \ No newline at end of file | ... | ... |