Commit 54ee46e1ff0a8505ee15720f1567ee0923eb9bc4
1 parent
7767c2ce
add 官网首页地图 驾车路线规划 实时路况检测
Showing
3 changed files
with
911 additions
and
61 deletions
public/index.html
| @@ -5,8 +5,13 @@ | @@ -5,8 +5,13 @@ | ||
| 5 | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> | 5 | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| 6 | <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> | 6 | <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> |
| 7 | <link rel="icon" href="<%= BASE_URL %>favicon.ico"> | 7 | <link rel="icon" href="<%= BASE_URL %>favicon.ico"> |
| 8 | + <!-- 引入百度地图交通路况样式文件 --> | ||
| 9 | + <link href="http://api.map.baidu.com/library/TrafficControl/1.4/src/TrafficControl_min.css" rel="stylesheet" type="text/css"/> | ||
| 8 | <title><%= webpackConfig.name %></title> | 10 | <title><%= webpackConfig.name %></title> |
| 9 | <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=cuMSxNl5LOY6sf1M3nDGtG6tGXl5a0Bb"></script> | 11 | <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=cuMSxNl5LOY6sf1M3nDGtG6tGXl5a0Bb"></script> |
| 12 | + <!-- 引入百度地图交通路况文件 --> | ||
| 13 | + <script type="text/javascript" src="http://api.map.baidu.com/library/TrafficControl/1.4/src/TrafficControl_min.js"></script> | ||
| 14 | + | ||
| 10 | </head> | 15 | </head> |
| 11 | <body> | 16 | <body> |
| 12 | <noscript> | 17 | <noscript> |
src/views/home.vue
| @@ -7,6 +7,22 @@ | @@ -7,6 +7,22 @@ | ||
| 7 | <div class="berth"> | 7 | <div class="berth"> |
| 8 | <h1 class="title">泊位分布</h1> | 8 | <h1 class="title">泊位分布</h1> |
| 9 | <div class="map" id="map"></div> | 9 | <div class="map" id="map"></div> |
| 10 | + <!--路线规划--> | ||
| 11 | + <div class="routebox"> | ||
| 12 | + <div class="searchbox-content-common routebox-content"> | ||
| 13 | + <div class="routebox-inputs"> | ||
| 14 | + <div class="routebox-input route-start"> | ||
| 15 | + <div class="route-input-icon"></div> | ||
| 16 | + <input autocomplete="off" id="startAddress" maxlength="256" placeholder="输入起点" class="route-start-input" type="text" value=""> | ||
| 17 | + </div> | ||
| 18 | + <div class="routebox-input route-end"> | ||
| 19 | + <div class="route-input-icon"></div> | ||
| 20 | + <input autocomplete="off" id="endAddress" maxlength="256" placeholder="输入终点" class="route-end-input" type="text" value=""> | ||
| 21 | + </div> | ||
| 22 | + </div> | ||
| 23 | + </div> | ||
| 24 | + </div> | ||
| 25 | + <button id="search-button" data-title="搜索" @click='searchByStationName1()'></button> | ||
| 10 | <div class="berth-num"> | 26 | <div class="berth-num"> |
| 11 | <p>区域泊位规划</p> | 27 | <p>区域泊位规划</p> |
| 12 | <ul class="berth-list"> | 28 | <ul class="berth-list"> |
| @@ -19,7 +35,7 @@ | @@ -19,7 +35,7 @@ | ||
| 19 | </div> | 35 | </div> |
| 20 | </div> | 36 | </div> |
| 21 | <div class="news-wrap"> | 37 | <div class="news-wrap"> |
| 22 | - <h1 class="title">新闻/公告中心</h1> | 38 | + <h1 class="title">新闻公告中心</h1> |
| 23 | <div class="fl news-bg"></div> | 39 | <div class="fl news-bg"></div> |
| 24 | <ul class="fl news-con"> | 40 | <ul class="fl news-con"> |
| 25 | <li class="clearfix" v-for="(news,id) in newsList" :key="id" @click="showNews(news.noticeId)"> | 41 | <li class="clearfix" v-for="(news,id) in newsList" :key="id" @click="showNews(news.noticeId)"> |
| @@ -47,6 +63,7 @@ | @@ -47,6 +63,7 @@ | ||
| 47 | </template> | 63 | </template> |
| 48 | 64 | ||
| 49 | <script> | 65 | <script> |
| 66 | + var map; | ||
| 50 | import {queryParkLotInfoByOrgId,queryNoticeForPage,queryNotice} from '@/api/park'; | 67 | import {queryParkLotInfoByOrgId,queryNoticeForPage,queryNotice} from '@/api/park'; |
| 51 | import pagination from '@/components/Pagination/index.vue' | 68 | import pagination from '@/components/Pagination/index.vue' |
| 52 | import {string2Date} from '@/filters/index'; | 69 | import {string2Date} from '@/filters/index'; |
| @@ -69,8 +86,13 @@ | @@ -69,8 +86,13 @@ | ||
| 69 | pageSize: 7, | 86 | pageSize: 7, |
| 70 | pageSizeS: [8, 16], | 87 | pageSizeS: [8, 16], |
| 71 | pageTotal: 0, | 88 | pageTotal: 0, |
| 89 | + from: null, | ||
| 90 | + to: null, | ||
| 91 | + address_detail: null, //详细地址 | ||
| 92 | + userlocation: {lng: "", lat: ""}, | ||
| 72 | //新闻详情 | 93 | //新闻详情 |
| 73 | newscontent:'', | 94 | newscontent:'', |
| 95 | + | ||
| 74 | } | 96 | } |
| 75 | }, | 97 | }, |
| 76 | computed: { | 98 | computed: { |
| @@ -135,36 +157,104 @@ | @@ -135,36 +157,104 @@ | ||
| 135 | baiduMap(mapDatas) { | 157 | baiduMap(mapDatas) { |
| 136 | if (mapDatas.length === 0) { | 158 | if (mapDatas.length === 0) { |
| 137 | // 百度地图API功能 | 159 | // 百度地图API功能 |
| 138 | - let map = new BMap.Map("map", {enableMapClick: false}); | 160 | + map = new BMap.Map("map", {enableMapClick: false}); |
| 139 | let point = new BMap.Point(115.078186, 30.232887); | 161 | let point = new BMap.Point(115.078186, 30.232887); |
| 140 | map.centerAndZoom(point, 15); | 162 | map.centerAndZoom(point, 15); |
| 141 | map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放 | 163 | map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放 |
| 142 | - let top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT});// 左上角,添加比例尺 | 164 | + // let top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT});// 左上角,添加比例尺 |
| 143 | let top_left_navigation = new BMap.NavigationControl(); //左上角,添加默认缩放平移控件 | 165 | let top_left_navigation = new BMap.NavigationControl(); //左上角,添加默认缩放平移控件 |
| 144 | let top_right_navigation = new BMap.NavigationControl({ | 166 | let top_right_navigation = new BMap.NavigationControl({ |
| 145 | anchor: BMAP_ANCHOR_TOP_RIGHT, | 167 | anchor: BMAP_ANCHOR_TOP_RIGHT, |
| 146 | type: BMAP_NAVIGATION_CONTROL_SMALL | 168 | type: BMAP_NAVIGATION_CONTROL_SMALL |
| 147 | }); //右上角,仅包含平移和缩放按钮 | 169 | }); //右上角,仅包含平移和缩放按钮 |
| 148 | - map.addControl(top_left_control); | 170 | + // map.addControl(top_left_control); |
| 149 | map.addControl(top_left_navigation); | 171 | map.addControl(top_left_navigation); |
| 150 | - map.addControl(top_right_navigation); | 172 | + // map.addControl(top_right_navigation); |
| 173 | + const ctrl = new BMapLib.TrafficControl({ | ||
| 174 | + showPanel: true , // 是否显示路况提示面板 | ||
| 175 | + }); | ||
| 176 | + map.addControl(ctrl); | ||
| 177 | + ctrl.showTraffic({ predictDate: { hour: 15, weekday: 5 } }); | ||
| 178 | + ctrl.setAnchor(BMAP_ANCHOR_TOP_LEFT); | ||
| 179 | + ctrl.setOffset(new BMap.Size(85, 27)); | ||
| 180 | + var localSearch = new BMap.LocalSearch(map); | ||
| 181 | + localSearch.enableAutoViewport(); //允许自动调节窗体大小 | ||
| 151 | map.clearOverlays(); | 182 | map.clearOverlays(); |
| 152 | } | 183 | } |
| 153 | else { | 184 | else { |
| 185 | + var th = this; | ||
| 154 | // 百度地图API功能 | 186 | // 百度地图API功能 |
| 155 | - let map = new BMap.Map("map", {enableMapClick: false}); | 187 | + map = new BMap.Map("map", {enableMapClick: false}); |
| 156 | let point = new BMap.Point(mapDatas[0].lonId, mapDatas[0].latId); | 188 | let point = new BMap.Point(mapDatas[0].lonId, mapDatas[0].latId); |
| 157 | map.centerAndZoom(point, 18); | 189 | map.centerAndZoom(point, 18); |
| 158 | map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放 | 190 | map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放 |
| 159 | - let top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT});// 左上角,添加比例尺 | 191 | + // let top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT});// 左上角,添加比例尺 |
| 160 | let top_left_navigation = new BMap.NavigationControl(); //左上角,添加默认缩放平移控件 | 192 | let top_left_navigation = new BMap.NavigationControl(); //左上角,添加默认缩放平移控件 |
| 161 | let top_right_navigation = new BMap.NavigationControl({ | 193 | let top_right_navigation = new BMap.NavigationControl({ |
| 162 | anchor: BMAP_ANCHOR_TOP_RIGHT, | 194 | anchor: BMAP_ANCHOR_TOP_RIGHT, |
| 163 | type: BMAP_NAVIGATION_CONTROL_SMALL | 195 | type: BMAP_NAVIGATION_CONTROL_SMALL |
| 164 | }); //右上角,仅包含平移和缩放按钮 | 196 | }); //右上角,仅包含平移和缩放按钮 |
| 165 | - map.addControl(top_left_control); | 197 | + // map.addControl(top_left_control); |
| 166 | map.addControl(top_left_navigation); | 198 | map.addControl(top_left_navigation); |
| 167 | - map.addControl(top_right_navigation); | 199 | + const ctrl = new BMapLib.TrafficControl({ |
| 200 | + showPanel: true , // 是否显示路况提示面板 | ||
| 201 | + }); | ||
| 202 | + map.addControl(ctrl); | ||
| 203 | + ctrl.showTraffic({ predictDate: { hour: 15, weekday: 5 } }); | ||
| 204 | + ctrl.setAnchor(BMAP_ANCHOR_TOP_LEFT); | ||
| 205 | + ctrl.setOffset(new BMap.Size(85, 27)); | ||
| 206 | + var localSearch = new BMap.LocalSearch(map); | ||
| 207 | + localSearch.enableAutoViewport(); //允许自动调节窗体大小 | ||
| 208 | + //起点自动搜索功能 | ||
| 209 | + var ac1 = new BMap.Autocomplete( //建立一个自动完成的对象 | ||
| 210 | + { | ||
| 211 | + "input": "startAddress","location": map | ||
| 212 | + }) | ||
| 213 | + var myValue; | ||
| 214 | + ac1.addEventListener("onconfirm", function (e) { //鼠标点击下拉列表后的事件 | ||
| 215 | + var _value = e.item.value; | ||
| 216 | + myValue = _value.province + _value.city + _value.district + _value.street + _value.business; | ||
| 217 | + this.address_detail = myValue | ||
| 218 | + setPlace(); | ||
| 219 | + }); | ||
| 220 | + function setPlace() { | ||
| 221 | + map.clearOverlays(); //清除地图上所有覆盖物 | ||
| 222 | + function myFun() { | ||
| 223 | + th.userlocation = local.getResults().getPoi(0).point; //获取第一个智能搜索的结果 | ||
| 224 | + map.centerAndZoom(th.userlocation, 18); | ||
| 225 | + map.addOverlay(new BMap.Marker(th.userlocation)); //添加标注 | ||
| 226 | + } | ||
| 227 | + | ||
| 228 | + var local = new BMap.LocalSearch(map, { //智能搜索 | ||
| 229 | + onSearchComplete: myFun | ||
| 230 | + }); | ||
| 231 | + local.search(myValue); | ||
| 232 | + }; | ||
| 233 | + //终点自动搜索功能 | ||
| 234 | + var ac2 = new BMap.Autocomplete( //建立一个自动完成的对象 | ||
| 235 | + { | ||
| 236 | + "input": "endAddress","location": map | ||
| 237 | + }) | ||
| 238 | + var myValue1; | ||
| 239 | + ac2.addEventListener("onconfirm", function (e) { //鼠标点击下拉列表后的事件 | ||
| 240 | + var _value = e.item.value; | ||
| 241 | + myValue1 = _value.province + _value.city + _value.district + _value.street + _value.business; | ||
| 242 | + this.address_detail = myValue1 | ||
| 243 | + setPlace1(); | ||
| 244 | + }); | ||
| 245 | + function setPlace1() { | ||
| 246 | + map.clearOverlays(); //清除地图上所有覆盖物 | ||
| 247 | + function myFun1() { | ||
| 248 | + th.userlocation = local.getResults().getPoi(0).point; //获取第一个智能搜索的结果 | ||
| 249 | + map.centerAndZoom(th.userlocation, 18); | ||
| 250 | + map.addOverlay(new BMap.Marker(th.userlocation)); //添加标注 | ||
| 251 | + } | ||
| 252 | + | ||
| 253 | + var local = new BMap.LocalSearch(map, { //智能搜索 | ||
| 254 | + onSearchComplete: myFun1 | ||
| 255 | + }); | ||
| 256 | + local.search(myValue); | ||
| 257 | + } | ||
| 168 | map.clearOverlays(); | 258 | map.clearOverlays(); |
| 169 | let i = 0; | 259 | let i = 0; |
| 170 | let points = []; | 260 | let points = []; |
| @@ -226,6 +316,68 @@ | @@ -226,6 +316,68 @@ | ||
| 226 | } | 316 | } |
| 227 | } | 317 | } |
| 228 | }, | 318 | }, |
| 319 | + searchByStationName1: function () { | ||
| 320 | + var _this = this; | ||
| 321 | + var startAddrr = document.getElementById("startAddress").value;//获得起点地名 | ||
| 322 | + var localSearch = new BMap.LocalSearch(map); | ||
| 323 | + localSearch.setSearchCompleteCallback(function (searchResult) { | ||
| 324 | + var poi = searchResult.getPoi(0);//获得起点经纬度坐标 | ||
| 325 | + if (poi != null) { //判断地名是否存在 | ||
| 326 | + console.log('from poi', poi); | ||
| 327 | + _this.from = poi.point; | ||
| 328 | + console.log('from', _this.from); | ||
| 329 | + _this.searchByStationName2(); | ||
| 330 | + } | ||
| 331 | + else{ | ||
| 332 | + alert("请输入正确的地名!") | ||
| 333 | + } | ||
| 334 | + }); | ||
| 335 | + localSearch.search(startAddrr); | ||
| 336 | + }, | ||
| 337 | + searchByStationName2: function () { | ||
| 338 | + var _this = this; | ||
| 339 | + var endAddrr = document.getElementById("endAddress").value; //获得目的地地名 | ||
| 340 | + var localSearch = new BMap.LocalSearch(map); | ||
| 341 | + localSearch.setSearchCompleteCallback(function (searchResult) { | ||
| 342 | + var poi = searchResult.getPoi(0); //获得目的地经纬度坐标 | ||
| 343 | + if (poi != null) { //判断目的地是否存在 | ||
| 344 | + _this.to = poi.point; | ||
| 345 | + _this.run(); | ||
| 346 | + } | ||
| 347 | + else{ | ||
| 348 | + alert("请输入正确的地名!") | ||
| 349 | + } | ||
| 350 | + | ||
| 351 | + }); | ||
| 352 | + localSearch.search(endAddrr); | ||
| 353 | + }, | ||
| 354 | + run: function () { | ||
| 355 | + map.clearOverlays() // 清除地图上所有的覆盖物 | ||
| 356 | + var driving = new BMap.DrivingRoute(map) // 创建驾车实例 | ||
| 357 | + driving.search(this.from, this.to) // 搜索 | ||
| 358 | + let that = this; | ||
| 359 | + driving.setSearchCompleteCallback(function () { | ||
| 360 | + console.log('completeCallback start!'); | ||
| 361 | + var pts = driving.getResults().getPlan(0).getRoute(0).getPath() // 通过步行实例,获得一系列点的数组 | ||
| 362 | + | ||
| 363 | + var polyline = new BMap.Polyline(pts); | ||
| 364 | + map.addOverlay(polyline); | ||
| 365 | + console.log('pollyline!', polyline); | ||
| 366 | + var m1 = new BMap.Marker(that.from); // 创建2个marker | ||
| 367 | + var m2 = new BMap.Marker(that.to); | ||
| 368 | + map.addOverlay(m1) | ||
| 369 | + map.addOverlay(m2) | ||
| 370 | + | ||
| 371 | + var lab1 = new BMap.Label('起点', {position: that.from}) // 创建2个label | ||
| 372 | + var lab2 = new BMap.Label('终点', {position: that.to}) | ||
| 373 | + map.addOverlay(lab1) | ||
| 374 | + map.addOverlay(lab2) | ||
| 375 | + console.log('setTimeout!'); | ||
| 376 | + setTimeout(function () { | ||
| 377 | + map.setViewport([that.from, that.to]) // 调整到最佳视野 | ||
| 378 | + }, 1000) | ||
| 379 | + }) | ||
| 380 | + }, | ||
| 229 | //新闻中心 | 381 | //新闻中心 |
| 230 | getNoticeForPage(){ | 382 | getNoticeForPage(){ |
| 231 | let req={ | 383 | let req={ |
| @@ -303,8 +455,8 @@ | @@ -303,8 +455,8 @@ | ||
| 303 | width: 323px; | 455 | width: 323px; |
| 304 | height: 368px; | 456 | height: 368px; |
| 305 | position: absolute; | 457 | position: absolute; |
| 306 | - top: 200px; | ||
| 307 | - right: 80px; | 458 | + bottom: 70px; |
| 459 | + left: 8px; | ||
| 308 | background: url("../assets/home/berth.png") no-repeat; | 460 | background: url("../assets/home/berth.png") no-repeat; |
| 309 | p { | 461 | p { |
| 310 | padding-top: 20px; | 462 | padding-top: 20px; |
| @@ -376,61 +528,86 @@ | @@ -376,61 +528,86 @@ | ||
| 376 | text-align: justify; | 528 | text-align: justify; |
| 377 | } | 529 | } |
| 378 | } | 530 | } |
| 379 | -/* | ||
| 380 | - .date { | ||
| 381 | - width: 83px; | ||
| 382 | - height: 83px; | ||
| 383 | - margin-right: 20px; | ||
| 384 | - background: #FF5656; | 531 | + #tcWrap .maplibTcColor{ |
| 532 | + height: 15px; | ||
| 533 | + } | ||
| 534 | + /*路线规划*/ | ||
| 535 | + .routebox { | ||
| 536 | + -webkit-transition: max-height 1s ease-in; | ||
| 537 | + transition: max-height 1s ease-in; | ||
| 538 | + overflow: hidden; | ||
| 539 | + position: absolute; | ||
| 540 | + top: 160px; | ||
| 541 | + right: 87px; | ||
| 542 | + width: 289px; | ||
| 543 | + height: 80px; | ||
| 544 | + } | ||
| 545 | + .routebox .routebox-content { | ||
| 546 | + height: auto!important; | ||
| 385 | position: relative; | 547 | position: relative; |
| 386 | - h3 { | ||
| 387 | - padding-top: 15px; | ||
| 388 | - font-size: 32px; | ||
| 389 | - color: rgba(255, 255, 255, 1); | ||
| 390 | - } | ||
| 391 | - h5 { | ||
| 392 | - font-size: 12px; | ||
| 393 | - text-align: right; | ||
| 394 | - padding-right: 10px; | ||
| 395 | - color: #Fff; | ||
| 396 | - } | ||
| 397 | - &:before { | ||
| 398 | - content: ''; | ||
| 399 | - position: absolute; | ||
| 400 | - right: 14px; | ||
| 401 | - bottom: 36px; | ||
| 402 | - transform: rotate(-45deg); | ||
| 403 | - width: 25px; | ||
| 404 | - height: 1px; | ||
| 405 | - background: rgba(255, 255, 255, 1) | ||
| 406 | - } | ||
| 407 | } | 548 | } |
| 408 | - | ||
| 409 | - .des h3 { | ||
| 410 | - padding-bottom: 15px; | ||
| 411 | - font-size: 20px; | ||
| 412 | - color: #0D1A26; | ||
| 413 | - cursor: pointer; | 549 | + .searchbox-content .searchbox-content-common { |
| 550 | + box-sizing: border-box; | ||
| 551 | + float: left; | ||
| 552 | + width: 329px; | ||
| 553 | + height: 38px; | ||
| 414 | } | 554 | } |
| 415 | - | ||
| 416 | - .des p { | ||
| 417 | - width: 430px; | ||
| 418 | - line-height: 22px; | ||
| 419 | - color: #314659; | ||
| 420 | - }*/ | ||
| 421 | - | ||
| 422 | - /*.index_cont .dislog-wrap { | ||
| 423 | - height: 30px; | ||
| 424 | - line-height: 30px; | 555 | + .routebox .routebox-content .routebox-input { |
| 556 | + height: 40px; | ||
| 557 | + width: 289px; | ||
| 558 | + border-bottom: 1px solid #eaebed; | ||
| 559 | + position: relative; | ||
| 560 | + } | ||
| 561 | + .routebox .routebox-content .routebox-input .route-input-icon { | ||
| 562 | + width: 11px; | ||
| 563 | + height: 10px; | ||
| 564 | + background: url(//webmap1.bdimg.com/wolfman/static/common/images/new/start_ee17f81.png) no-repeat 0 0; | ||
| 565 | + position: absolute; | ||
| 566 | + top: 15px; | ||
| 567 | + left: 3px; | ||
| 568 | + } | ||
| 569 | + .routebox .routebox-content .routebox-input input { | ||
| 570 | + box-sizing: border-box; | ||
| 571 | + border: 0; | ||
| 572 | + height: 100%; | ||
| 425 | width: 100%; | 573 | width: 100%; |
| 426 | - padding: 0 4px; | ||
| 427 | - border-radius: 4px; | ||
| 428 | - background-color: #3a8ee6; | ||
| 429 | - color: #fff; | 574 | + padding: 10px 0; |
| 430 | font-size: 14px; | 575 | font-size: 14px; |
| 431 | - text-align: center; | ||
| 432 | - white-space: nowrap; | ||
| 433 | - }*/ | 576 | + border-left: 20px solid transparent; |
| 577 | + border-right: 27px solid transparent; | ||
| 578 | + line-height: 20px; | ||
| 579 | + outline: 0; | ||
| 580 | + font-family: inherit; | ||
| 581 | + } | ||
| 582 | + .routebox .routebox-content .routebox-input { | ||
| 583 | + height: 40px; | ||
| 584 | + width: 289px; | ||
| 585 | + border-bottom: 1px solid #eaebed; | ||
| 586 | + position: relative; | ||
| 587 | + } | ||
| 588 | + .routebox .routebox-content .routebox-input:last-child { | ||
| 589 | + border-bottom: 0; | ||
| 590 | + } | ||
| 591 | + .routebox .routebox-content .routebox-input.route-end .route-input-icon { | ||
| 592 | + background: url(//webmap0.bdimg.com/wolfman/static/common/images/new/end_e68ad9a.png) no-repeat 0 0; | ||
| 593 | + } | ||
| 594 | + #search-button { | ||
| 595 | + pointer-events: auto; | ||
| 596 | + background: url(//webmap1.bdimg.com/wolfman/static/common/images/new/searchbox_5c0d97d.png) no-repeat 0 -76px #3385ff; | ||
| 597 | + width: 57px; | ||
| 598 | + height: 38px; | ||
| 599 | + float: left; | ||
| 600 | + border: 0; | ||
| 601 | + padding: 0; | ||
| 602 | + cursor: pointer; | ||
| 603 | + border-radius: 0 2px 2px 0; | ||
| 604 | + box-shadow: 1px 2px 1px rgba(0,0,0,.15); | ||
| 605 | + outline: 0; | ||
| 606 | + font-family: inherit; | ||
| 607 | + position: absolute; | ||
| 608 | + top: 160px; | ||
| 609 | + right: 30px; | ||
| 610 | + } | ||
| 434 | /*新闻内容 样式*/ | 611 | /*新闻内容 样式*/ |
| 435 | .news_cont h1 { | 612 | .news_cont h1 { |
| 436 | font-size: 36px !important; | 613 | font-size: 36px !important; |
static/traffuccontrol.js
0 → 100644
| 1 | +var BMapLib = window.BMapLib = BMapLib || {}; | ||
| 2 | +(function () { | ||
| 3 | + var c, a = c = a || { | ||
| 4 | + version: "1.3.9" | ||
| 5 | + }; | ||
| 6 | + a.guid = "$BAIDU$"; | ||
| 7 | + (function () { | ||
| 8 | + a.dom = a.dom || {}; | ||
| 9 | + a.event = a.event || {}; | ||
| 10 | + a.lang = a.lang || {}; | ||
| 11 | + a.browser = a.browser || {}; | ||
| 12 | + a.dom.addClass = function (p, q) { | ||
| 13 | + p = a.dom.g(p); | ||
| 14 | + var k = q.split(/\s+/), | ||
| 15 | + j = p.className, | ||
| 16 | + o = " " + j + " ", | ||
| 17 | + n = 0, | ||
| 18 | + m = k.length; | ||
| 19 | + for (; n < m; n++) { | ||
| 20 | + if (o.indexOf(" " + k[n] + " ") < 0) { | ||
| 21 | + j += (j ? " " : "") + k[n] | ||
| 22 | + } | ||
| 23 | + } | ||
| 24 | + p.className = j; | ||
| 25 | + return p | ||
| 26 | + }; | ||
| 27 | + a.addClass = a.dom.addClass; | ||
| 28 | + a.dom.removeClass = function (p, q) { | ||
| 29 | + p = a.dom.g(p); | ||
| 30 | + var n = p.className.split(/\s+/), | ||
| 31 | + r = q.split(/\s+/), | ||
| 32 | + l, k = r.length, | ||
| 33 | + m, o = 0; | ||
| 34 | + for (; o < k; ++o) { | ||
| 35 | + for (m = 0, l = n.length; m < l; ++m) { | ||
| 36 | + if (n[m] == r[o]) { | ||
| 37 | + n.splice(m, 1); | ||
| 38 | + break | ||
| 39 | + } | ||
| 40 | + } | ||
| 41 | + } | ||
| 42 | + p.className = n.join(" "); | ||
| 43 | + return p | ||
| 44 | + }; | ||
| 45 | + a.removeClass = a.dom.removeClass; | ||
| 46 | + a.dom.getComputedStyle = function (k, j) { | ||
| 47 | + k = a.dom._g(k); | ||
| 48 | + var m = a.dom.getDocument(k), | ||
| 49 | + l; | ||
| 50 | + if (m.defaultView && m.defaultView.getComputedStyle) { | ||
| 51 | + l = m.defaultView.getComputedStyle(k, null); | ||
| 52 | + if (l) { | ||
| 53 | + return l[j] || l.getPropertyValue(j) | ||
| 54 | + } | ||
| 55 | + } | ||
| 56 | + return "" | ||
| 57 | + }; | ||
| 58 | + a.dom.getStyle = function (k, j) { | ||
| 59 | + var m = a.dom; | ||
| 60 | + k = m.g(k); | ||
| 61 | + var l = k.style[j] || (k.currentStyle ? k.currentStyle[j] : "") || m.getComputedStyle(k, j); | ||
| 62 | + return l | ||
| 63 | + }; | ||
| 64 | + a.getStyle = a.dom.getStyle; | ||
| 65 | + a.dom.getDocument = function (j) { | ||
| 66 | + j = a.dom.g(j); | ||
| 67 | + return j.nodeType == 9 ? j : j.ownerDocument || j.document | ||
| 68 | + }; | ||
| 69 | + a.dom.g = function (j) { | ||
| 70 | + if ("string" == typeof j || j instanceof String) { | ||
| 71 | + return document.getElementById(j) | ||
| 72 | + } else { | ||
| 73 | + if (j && j.nodeName && (j.nodeType == 1 || j.nodeType == 9)) { | ||
| 74 | + return j | ||
| 75 | + } | ||
| 76 | + } | ||
| 77 | + return null | ||
| 78 | + }; | ||
| 79 | + a.g = a.G = a.dom.g; | ||
| 80 | + a.dom._g = function (j) { | ||
| 81 | + if (a.lang.isString(j)) { | ||
| 82 | + return document.getElementById(j) | ||
| 83 | + } | ||
| 84 | + return j | ||
| 85 | + }; | ||
| 86 | + a._g = a.dom._g; | ||
| 87 | + a.lang.isString = function (j) { | ||
| 88 | + return "[object String]" == Object.prototype.toString.call(j) | ||
| 89 | + }; | ||
| 90 | + a.isString = a.lang.isString; | ||
| 91 | + a.event._listeners = a.event._listeners || []; | ||
| 92 | + a.event.on = function (k, n, p) { | ||
| 93 | + n = n.replace(/^on/i, ""); | ||
| 94 | + k = a.dom._g(k); | ||
| 95 | + var o = function (r) { | ||
| 96 | + p.call(k, r) | ||
| 97 | + }, | ||
| 98 | + j = a.event._listeners, | ||
| 99 | + m = a.event._eventFilter, | ||
| 100 | + q, l = n; | ||
| 101 | + n = n.toLowerCase(); | ||
| 102 | + if (m && m[n]) { | ||
| 103 | + q = m[n](k, n, o); | ||
| 104 | + l = q.type; | ||
| 105 | + o = q.listener | ||
| 106 | + } | ||
| 107 | + if (k.addEventListener) { | ||
| 108 | + k.addEventListener(l, o, false) | ||
| 109 | + } else { | ||
| 110 | + if (k.attachEvent) { | ||
| 111 | + k.attachEvent("on" + l, o) | ||
| 112 | + } | ||
| 113 | + } | ||
| 114 | + j[j.length] = [k, n, p, o, l]; | ||
| 115 | + return k | ||
| 116 | + }; | ||
| 117 | + a.on = a.event.on; | ||
| 118 | + a.event.un = function (l, o, k) { | ||
| 119 | + l = a.dom._g(l); | ||
| 120 | + o = o.replace(/^on/i, "").toLowerCase(); | ||
| 121 | + var r = a.event._listeners, | ||
| 122 | + m = r.length, | ||
| 123 | + n = !k, | ||
| 124 | + q, p, j; | ||
| 125 | + while (m--) { | ||
| 126 | + q = r[m]; | ||
| 127 | + if (q[1] === o && q[0] === l && (n || q[2] === k)) { | ||
| 128 | + p = q[4]; | ||
| 129 | + j = q[3]; | ||
| 130 | + if (l.removeEventListener) { | ||
| 131 | + l.removeEventListener(p, j, false) | ||
| 132 | + } else { | ||
| 133 | + if (l.detachEvent) { | ||
| 134 | + l.detachEvent("on" + p, j) | ||
| 135 | + } | ||
| 136 | + } | ||
| 137 | + r.splice(m, 1) | ||
| 138 | + } | ||
| 139 | + } | ||
| 140 | + return l | ||
| 141 | + }; | ||
| 142 | + a.un = a.event.un; | ||
| 143 | + if (/msie (\d+\.\d)/i.test(navigator.userAgent)) { | ||
| 144 | + a.browser.ie = a.ie = document.documentMode || +RegExp["\x241"] | ||
| 145 | + } | ||
| 146 | + a.platform = a.platform || {}; | ||
| 147 | + a.platform.isIphone = /iphone/i.test(navigator.userAgent); | ||
| 148 | + a.platform.isAndroid = /android/i.test(navigator.userAgent); | ||
| 149 | + a.platform.isIpad = /ipad/i.test(navigator.userAgent); | ||
| 150 | + a.isMobile = function () { | ||
| 151 | + return !!(a.platform.isIphone || a.platform.isIpad || a.platform.isAndroid) | ||
| 152 | + } | ||
| 153 | + })(); | ||
| 154 | + var h = a.isMobile() ? "_mobile" : "_deskTop"; | ||
| 155 | + var g = BMapLib.TrafficControl = function (j) { | ||
| 156 | + this.defaultAnchor = BMAP_ANCHOR_TOP_RIGHT; | ||
| 157 | + this.defaultOffset = new BMap.Size(10, 10); | ||
| 158 | + this.showPanel = j && j.showPanel | ||
| 159 | + }; | ||
| 160 | + g.prototype = new BMap.Control(); | ||
| 161 | + g.prototype.initialize = function (l) { | ||
| 162 | + var j = d("div", { | ||
| 163 | + title: "显示交通流量", | ||
| 164 | + id: "tcBtn", | ||
| 165 | + "class": "maplibTcBtn" + h + " maplibTcBtnOff" + h | ||
| 166 | + }); | ||
| 167 | + l.getContainer().appendChild(j); | ||
| 168 | + this._map = l; | ||
| 169 | + this._popUpDiv(this, j); | ||
| 170 | + var k = this; | ||
| 171 | + this.btn = j; | ||
| 172 | + return j | ||
| 173 | + }; | ||
| 174 | + g.prototype._popUpDiv = function (F, w) { | ||
| 175 | + var F = this; | ||
| 176 | + var x = ["查看实时路况", "流量预测"]; | ||
| 177 | + var l = ["查看流量预测", "实时路况"]; | ||
| 178 | + var A = true; | ||
| 179 | + this.bShow = false; | ||
| 180 | + var D = this; | ||
| 181 | + D._bind = false; | ||
| 182 | + b(w, "afterEnd", u()); | ||
| 183 | + b(w, "afterEnd", H()); | ||
| 184 | + var B = a.g("tcViewPrediction"); | ||
| 185 | + var t = a.g("tcPredition"); | ||
| 186 | + var G = a.g("tcTitle"); | ||
| 187 | + var n = a.g("maplibTcDay"); | ||
| 188 | + var y = a.g("tcNow"); | ||
| 189 | + var p = a.g("tcWrap"); | ||
| 190 | + var v = a.g("tcTimeBox"); | ||
| 191 | + var z = a.g("tcUpdate"); | ||
| 192 | + var j = ["一", "二", "三", "四", "五", "六", "日"]; | ||
| 193 | + var s = new E(F); | ||
| 194 | + this.show = function () { | ||
| 195 | + k(); | ||
| 196 | + F.bShow = true; | ||
| 197 | + a.dom.removeClass(w, "maplibTcBtnOff" + h) | ||
| 198 | + }; | ||
| 199 | + this.hide = function () { | ||
| 200 | + F.bShow = false; | ||
| 201 | + a.dom.addClass(w, "maplibTcBtnOff" + h); | ||
| 202 | + if (a.isMobile()) { | ||
| 203 | + a.dom.addClass("tcWrap_mobile", "maplibTfctrHide") | ||
| 204 | + } else { | ||
| 205 | + a.dom.addClass("tcWrap", "maplibTcHide"); | ||
| 206 | + a.dom.addClass("tcPredition", "maplibTcHide") | ||
| 207 | + } | ||
| 208 | + F.hideTraffic() | ||
| 209 | + }; | ||
| 210 | + this.isbShow = function () { | ||
| 211 | + return F.bShow | ||
| 212 | + }; | ||
| 213 | + this.setPopOffset = function (J) { | ||
| 214 | + var L = 24; | ||
| 215 | + var K = J.height + L + "px"; | ||
| 216 | + var I = J.width + "px"; | ||
| 217 | + switch (F.getAnchor()) { | ||
| 218 | + case BMAP_ANCHOR_TOP_LEFT: | ||
| 219 | + p.style.top = K; | ||
| 220 | + p.style.left = I; | ||
| 221 | + break; | ||
| 222 | + case BMAP_ANCHOR_TOP_RIGHT: | ||
| 223 | + p.style.top = K; | ||
| 224 | + p.style.right = I; | ||
| 225 | + break; | ||
| 226 | + case BMAP_ANCHOR_BOTTOM_RIGHT: | ||
| 227 | + p.style.bottom = K; | ||
| 228 | + p.style.right = I; | ||
| 229 | + break; | ||
| 230 | + case BMAP_ANCHOR_BOTTOM_LEFT: | ||
| 231 | + p.style.bottom = K; | ||
| 232 | + p.style.left = I; | ||
| 233 | + break | ||
| 234 | + } | ||
| 235 | + }; | ||
| 236 | + var r = a.isMobile() ? "ontouchend" : "onclick"; | ||
| 237 | + a.event.on(w, r, function () { | ||
| 238 | + o() | ||
| 239 | + }); | ||
| 240 | + a.event.on("tcClose", "click", function (I) { | ||
| 241 | + o() | ||
| 242 | + }); | ||
| 243 | + | ||
| 244 | + function o() { | ||
| 245 | + if (!D.isbShow()) { | ||
| 246 | + D.setPopOffset(F.getOffset()); | ||
| 247 | + D.show() | ||
| 248 | + } else { | ||
| 249 | + D.hide() | ||
| 250 | + } | ||
| 251 | + } | ||
| 252 | + | ||
| 253 | + function k() { | ||
| 254 | + n.innerHTML = "更新时间"; | ||
| 255 | + G.innerHTML = l[1]; | ||
| 256 | + B.innerHTML = l[0]; | ||
| 257 | + a.dom.addClass(t, "maplibTcHide"); | ||
| 258 | + z.style.display = "block"; | ||
| 259 | + A = true; | ||
| 260 | + if (a.isMobile()) { | ||
| 261 | + if (F.showPanel) { | ||
| 262 | + a.dom.removeClass("tcWrap_mobile", "maplibTfctrHide") | ||
| 263 | + } | ||
| 264 | + } else { | ||
| 265 | + a.dom.removeClass("tcWrap", "maplibTcHide") | ||
| 266 | + } | ||
| 267 | + var K = a.g("tcWeek").getElementsByTagName("a"); | ||
| 268 | + for (var J = 0; J < 7; J++) { | ||
| 269 | + K[J].className = "" | ||
| 270 | + } | ||
| 271 | + var I = | ||
| 272 | + "http://its.map.baidu.com:8002/traffic/GetCurrentTime?callback=BMapLib.TrafficControl.getTime&"; | ||
| 273 | + e(I + (new Date()).getTime(), L); | ||
| 274 | + if (F.timer) { | ||
| 275 | + clearInterval(F.timer) | ||
| 276 | + } | ||
| 277 | + F.timer = setInterval(function () { | ||
| 278 | + e(I + (new Date()).getTime(), function () { | ||
| 279 | + if (F.bShow) { | ||
| 280 | + var N = g.curTime; | ||
| 281 | + var M = N.getHours(); | ||
| 282 | + var O = (M < 10 ? ("0" + M) : M) + ":" + (N.getMinutes() < 10 ? ("0" + | ||
| 283 | + N.getMinutes()) : N.getMinutes()); | ||
| 284 | + y.innerHTML = O; | ||
| 285 | + F.hideTraffic(); | ||
| 286 | + F.showTraffic() | ||
| 287 | + } | ||
| 288 | + }) | ||
| 289 | + }, 1000 * 3 * 60); | ||
| 290 | + | ||
| 291 | + function L() { | ||
| 292 | + var N = g.curTime; | ||
| 293 | + var M = N.getHours(); | ||
| 294 | + if (!D._bind) { | ||
| 295 | + C(F); | ||
| 296 | + m(F); | ||
| 297 | + D._bind = true | ||
| 298 | + } | ||
| 299 | + var O = (M < 10 ? ("0" + M) : M) + ":" + (N.getMinutes() < 10 ? ("0" + N.getMinutes()) : N.getMinutes()); | ||
| 300 | + y.innerHTML = O; | ||
| 301 | + F.hour = M; | ||
| 302 | + F.weekday = N.getDay() == 0 ? 7 : N.getDay(); | ||
| 303 | + F.time = O; | ||
| 304 | + s.setBarTime(M) | ||
| 305 | + } | ||
| 306 | + } | ||
| 307 | + | ||
| 308 | + function H() { | ||
| 309 | + return '<div class="maplibTfctr maplibTfctrHide" id="tcWrap_mobile" style="position: absolute; z-index: 10; -webkit-text-size-adjust: none; bottom: 17px; right: auto; top: auto; left:50%;margin-left:-4.5em;"><div class="maplibTfctr_l"></div><div class="maplibTfctr_c">实时路况</div><div class="maplibTfctr_status"><span class="maplibR">堵</span><span class="maplibY">缓</span><span class="maplibG">畅</span></div></div>' | ||
| 310 | + } | ||
| 311 | + | ||
| 312 | + function u() { | ||
| 313 | + var I = ['<div class="maplibTc maplibTcHide" id="tcWrap">']; | ||
| 314 | + I.push('<div class="maplibTcColor" id="tcTitle">实时路况</div>'); | ||
| 315 | + I.push('<div id="tcRealTime">'); | ||
| 316 | + I.push( | ||
| 317 | + '<div class="maplibTcTime"><span id="maplibTcDay" class="maplibTcCurTime">更新时间</span><span><span class="maplibTcColon">: </span><span class="maplibTcCurTime" id="tcNow"></span><span title="更新" id="tcUpdate" class="maplibTcUpdate"></span> <a href="javascript:void(0)" class="maplibTcView" id="tcViewPrediction">查看流量预测</a><button class="maplibTcClose" id="tcClose"></button></div></div>' | ||
| 318 | + ); | ||
| 319 | + I.push('<div id="tcPredition" class="maplibTcHide">'); | ||
| 320 | + I.push( | ||
| 321 | + '<div class="maplibTcWeekDay"><span>星期</span><ul id="tcWeek"><li><a lang="1" href="javascript:void(0)">一</a></li><li><a lang="2" href="javascript:void(0)">二</a></li><li><a lang="3" href="javascript:void(0)">三</a></li><li><a lang="4" href="javascript:void(0)">四</a></li><li><a lang="5" href="javascript:void(0)">五</a></li><li><a lang="6" href="javascript:void(0)">六</a></li><li><a lang="7" href="javascript:void(0)">日</a></li></ul></div>' | ||
| 322 | + ); | ||
| 323 | + I.push('<div><div class="maplibTcRuleTxt">时间</div>'); | ||
| 324 | + I.push('<div class="maplibTcRule">'); | ||
| 325 | + I.push('<div><div class="maplibTcTimeBox" id="tcTimeBox">20:00</div></div>'); | ||
| 326 | + I.push('<div class="maplibTcTimeline" >'); | ||
| 327 | + I.push('<div class="maplibTcTimelinePrev" id="tcPrev"></div>'); | ||
| 328 | + I.push('<div class="maplibTcTimeMove" id="tcMove"></div>'); | ||
| 329 | + I.push('<div class="maplibTcTimelineNext" id="tcNext"></div>'); | ||
| 330 | + I.push("</div></div></div>"); | ||
| 331 | + I.push( | ||
| 332 | + '<div class="maplibTcClear" style="text-align: center; color: #ccc;">(基于历史流量统计预测 仅供参考)</div>' | ||
| 333 | + ); | ||
| 334 | + I.push("</div></div></div>"); | ||
| 335 | + return I.join("") | ||
| 336 | + } | ||
| 337 | + | ||
| 338 | + function C(J) { | ||
| 339 | + a.event.on("tcViewPrediction", "click", function () { | ||
| 340 | + if (A) { | ||
| 341 | + I() | ||
| 342 | + } else { | ||
| 343 | + k() | ||
| 344 | + } | ||
| 345 | + }); | ||
| 346 | + | ||
| 347 | + function I() { | ||
| 348 | + if (J.timer) { | ||
| 349 | + clearInterval(J.timer) | ||
| 350 | + } | ||
| 351 | + G.innerHTML = x[1]; | ||
| 352 | + B.innerHTML = x[0]; | ||
| 353 | + a.dom.removeClass(t, "maplibTcHide"); | ||
| 354 | + z.style.display = "none"; | ||
| 355 | + A = false; | ||
| 356 | + n.innerHTML = "星期" + j[J.weekday - 1]; | ||
| 357 | + y.innerHTML = v.innerHTML; | ||
| 358 | + J.showTraffic({ | ||
| 359 | + predictDate: { | ||
| 360 | + hour: J.hour, | ||
| 361 | + weekday: J.weekday | ||
| 362 | + } | ||
| 363 | + }) | ||
| 364 | + } | ||
| 365 | + a.event.on("tcUpdate", "click", function () { | ||
| 366 | + k() | ||
| 367 | + }) | ||
| 368 | + } | ||
| 369 | + | ||
| 370 | + function q() { | ||
| 371 | + n.innerHTML = "星期" + j[F.weekday - 1]; | ||
| 372 | + y.innerHTML = v.innerHTML | ||
| 373 | + } | ||
| 374 | + | ||
| 375 | + function m(I) { | ||
| 376 | + a.event.on("tcWeek", "onclick", function (L) { | ||
| 377 | + var K = L.target || L.srcElement; | ||
| 378 | + if (K.tagName.toLowerCase() == "a") { | ||
| 379 | + var M = a.g("tcWeek").getElementsByTagName("a"); | ||
| 380 | + for (var J = 0; J < 7; J++) { | ||
| 381 | + M[J].className = "" | ||
| 382 | + } | ||
| 383 | + a.dom.addClass(K, "maplibTcOn"); | ||
| 384 | + I.weekday = (parseInt(f(K, "lang"), 10)); | ||
| 385 | + q(); | ||
| 386 | + I.showTraffic({ | ||
| 387 | + predictDate: { | ||
| 388 | + hour: I.hour, | ||
| 389 | + weekday: I.weekday | ||
| 390 | + } | ||
| 391 | + }) | ||
| 392 | + } | ||
| 393 | + }) | ||
| 394 | + } | ||
| 395 | + | ||
| 396 | + function E(M) { | ||
| 397 | + var J; | ||
| 398 | + var O = a.g("tcMove"); | ||
| 399 | + | ||
| 400 | + function N(R) { | ||
| 401 | + a.on(document, "onmousemove", Q); | ||
| 402 | + a.on(document, "onmouseup", I); | ||
| 403 | + if (R && R.preventDefault) { | ||
| 404 | + R.preventDefault() | ||
| 405 | + } else { | ||
| 406 | + window.event.returnValue = false | ||
| 407 | + } | ||
| 408 | + return false | ||
| 409 | + } | ||
| 410 | + | ||
| 411 | + function Q(U) { | ||
| 412 | + var R = U.clientX || U.x; | ||
| 413 | + var T = i(a.G("tcPrev")).left + 9; | ||
| 414 | + var S = R - T - 4; | ||
| 415 | + if (S < 0) { | ||
| 416 | + S = 0 | ||
| 417 | + } | ||
| 418 | + if (S > 165) { | ||
| 419 | + S = 165 | ||
| 420 | + } | ||
| 421 | + if (a.browser.ie <= 6) { | ||
| 422 | + O.style.marginLeft = (S * 0.53) + "px" | ||
| 423 | + } else { | ||
| 424 | + O.style.marginLeft = S + "px" | ||
| 425 | + } | ||
| 426 | + v.style.marginLeft = (S) + "px"; | ||
| 427 | + L() | ||
| 428 | + } | ||
| 429 | + | ||
| 430 | + function I() { | ||
| 431 | + a.un(document, "onmousemove", Q); | ||
| 432 | + a.un(document, "onmouseup", I); | ||
| 433 | + M.showTraffic({ | ||
| 434 | + predictDate: { | ||
| 435 | + hour: M.hour, | ||
| 436 | + weekday: M.weekday | ||
| 437 | + } | ||
| 438 | + }) | ||
| 439 | + } | ||
| 440 | + a.on(O, "onmousedown", N); | ||
| 441 | + a.on("tcPrev", "click", function () { | ||
| 442 | + P("prev") | ||
| 443 | + }); | ||
| 444 | + a.on("tcNext", "click", function () { | ||
| 445 | + P("next") | ||
| 446 | + }); | ||
| 447 | + | ||
| 448 | + function P(R) { | ||
| 449 | + var S = v; | ||
| 450 | + var T = parseInt(a.dom.getStyle("tcTimeBox", "marginLeft")); | ||
| 451 | + var U = Math.ceil((T - 4) * 24 / 165); | ||
| 452 | + K(R == "next" ? (U + 1) : (U - 1)) | ||
| 453 | + } | ||
| 454 | + this.setBarTime = function (R) { | ||
| 455 | + K(R) | ||
| 456 | + }; | ||
| 457 | + | ||
| 458 | + function K(T) { | ||
| 459 | + if (T < 0) { | ||
| 460 | + T = 0 | ||
| 461 | + } | ||
| 462 | + if (T > 24) { | ||
| 463 | + T = 24 | ||
| 464 | + } | ||
| 465 | + J = T; | ||
| 466 | + var S = T * (165 / 24); | ||
| 467 | + v.style.marginLeft = S + "px"; | ||
| 468 | + var R = a.g("tcMove"); | ||
| 469 | + if (a.browser.ie <= 6 && a.browser.ie > 0) { | ||
| 470 | + R.style.marginLeft = (S * 0.53) + "px" | ||
| 471 | + } else { | ||
| 472 | + R.style.marginLeft = S + "px" | ||
| 473 | + } | ||
| 474 | + M.hour = J; | ||
| 475 | + if (A) { | ||
| 476 | + M.showTraffic() | ||
| 477 | + } else { | ||
| 478 | + M.showTraffic({ | ||
| 479 | + predictDate: { | ||
| 480 | + hour: M.hour, | ||
| 481 | + weekday: M.weekday | ||
| 482 | + } | ||
| 483 | + }) | ||
| 484 | + } | ||
| 485 | + L() | ||
| 486 | + } | ||
| 487 | + | ||
| 488 | + function L() { | ||
| 489 | + var R = parseInt(v.style.marginLeft); | ||
| 490 | + var S = Math.ceil((R - 4) * 24 / 165); | ||
| 491 | + J = S; | ||
| 492 | + M.hour = S; | ||
| 493 | + if (S < 10) { | ||
| 494 | + S = "0" + S | ||
| 495 | + } | ||
| 496 | + if (A) { | ||
| 497 | + y.innerHTML = M.time; | ||
| 498 | + v.innerHTML = S + ":00" | ||
| 499 | + } else { | ||
| 500 | + y.innerHTML = v.innerHTML = S + ":00" | ||
| 501 | + } | ||
| 502 | + } | ||
| 503 | + } | ||
| 504 | + }; | ||
| 505 | + g.prototype.showTraffic = function (j) { | ||
| 506 | + var k; | ||
| 507 | + if (this._trafficLayer) { | ||
| 508 | + this._map.removeTileLayer(this._trafficLayer) | ||
| 509 | + } | ||
| 510 | + if (j) { | ||
| 511 | + if (j.predictDate.weekday > 7 || j.predictDate.weekday < 1) { | ||
| 512 | + return | ||
| 513 | + } | ||
| 514 | + k = new BMap.TrafficLayer(j) | ||
| 515 | + } else { | ||
| 516 | + k = new BMap.TrafficLayer() | ||
| 517 | + } | ||
| 518 | + this.bShow = true; | ||
| 519 | + if (a.isMobile()) { | ||
| 520 | + a.dom.removeClass(this.btn, "maplibTcBtnOff" + h) | ||
| 521 | + } | ||
| 522 | + this._map.addTileLayer(k); | ||
| 523 | + this._trafficLayer = k | ||
| 524 | + }; | ||
| 525 | + g.prototype.hideTraffic = function () { | ||
| 526 | + this.bShow = false; | ||
| 527 | + if (this._trafficLayer) { | ||
| 528 | + this._map.removeTileLayer(this._trafficLayer); | ||
| 529 | + this._trafficLayer = null | ||
| 530 | + } | ||
| 531 | + if (a.isMobile()) { | ||
| 532 | + a.dom.addClass(this.btn, "maplibTcBtnOff" + h) | ||
| 533 | + } | ||
| 534 | + }; | ||
| 535 | + g.prototype.remove = function () { | ||
| 536 | + this.hideTraffic(); | ||
| 537 | + var j = a.g("tcWrap"); | ||
| 538 | + j.parentNode.removeChild(j); | ||
| 539 | + BMap.Control.prototype.remove.call(this); | ||
| 540 | + if (this.timer) { | ||
| 541 | + clearInterval(this.timer) | ||
| 542 | + } | ||
| 543 | + }; | ||
| 544 | + | ||
| 545 | + function f(k, j, l) { | ||
| 546 | + if (!j || j.constructor != String) { | ||
| 547 | + return "" | ||
| 548 | + } | ||
| 549 | + j = { | ||
| 550 | + "for": "htmlFor", | ||
| 551 | + "class": "className" | ||
| 552 | + } [j] || j; | ||
| 553 | + if (typeof l != "undefined") { | ||
| 554 | + k[j] = l; | ||
| 555 | + if (k.setAttribute) { | ||
| 556 | + k.setAttribute(j, l) | ||
| 557 | + } | ||
| 558 | + } | ||
| 559 | + return k[j] || k.getAttribute(j) || "" | ||
| 560 | + } | ||
| 561 | + | ||
| 562 | + function d(l, k) { | ||
| 563 | + var n = document.createElement(l); | ||
| 564 | + k = k || {}; | ||
| 565 | + for (var m in k) { | ||
| 566 | + value = k[m]; | ||
| 567 | + m = j()[m] || m; | ||
| 568 | + if (m == "style") { | ||
| 569 | + n.style.cssText = value; | ||
| 570 | + continue | ||
| 571 | + } | ||
| 572 | + if (n.setAttribute) { | ||
| 573 | + n.setAttribute(m, value) | ||
| 574 | + } else { | ||
| 575 | + try { | ||
| 576 | + n[m] = value | ||
| 577 | + } catch (n) {} | ||
| 578 | + } | ||
| 579 | + } | ||
| 580 | + return n; | ||
| 581 | + | ||
| 582 | + function j() { | ||
| 583 | + var o = { | ||
| 584 | + cellpadding: "cellPadding", | ||
| 585 | + cellspacing: "cellSpacing", | ||
| 586 | + colspan: "colSpan", | ||
| 587 | + rowspan: "rowSpan", | ||
| 588 | + valign: "vAlign" | ||
| 589 | + }; | ||
| 590 | + if (a.browser.ie < 8) { | ||
| 591 | + o["for"] = "htmlFor"; | ||
| 592 | + o["class"] = "className" | ||
| 593 | + } else { | ||
| 594 | + o.htmlFor = "for"; | ||
| 595 | + o.className = "class" | ||
| 596 | + } | ||
| 597 | + return o | ||
| 598 | + } | ||
| 599 | + } | ||
| 600 | + | ||
| 601 | + function i(j) { | ||
| 602 | + var k = { | ||
| 603 | + left: 0, | ||
| 604 | + top: 0 | ||
| 605 | + }; | ||
| 606 | + while (j && j.offsetParent) { | ||
| 607 | + k.left += j.offsetLeft; | ||
| 608 | + k.top += j.offsetTop; | ||
| 609 | + j = j.offsetParent | ||
| 610 | + } | ||
| 611 | + return k | ||
| 612 | + } | ||
| 613 | + | ||
| 614 | + function b(m, j, l) { | ||
| 615 | + var k, n; | ||
| 616 | + if (m.insertAdjacentHTML) { | ||
| 617 | + m.insertAdjacentHTML(j, l) | ||
| 618 | + } else { | ||
| 619 | + k = m.ownerDocument.createRange(); | ||
| 620 | + j = j.toUpperCase(); | ||
| 621 | + if (j == "AFTERBEGIN" || j == "BEFOREEND") { | ||
| 622 | + k.selectNodeContents(m); | ||
| 623 | + k.collapse(j == "AFTERBEGIN") | ||
| 624 | + } else { | ||
| 625 | + n = j == "BEFOREBEGIN"; | ||
| 626 | + k[n ? "setStartBefore" : "setEndAfter"](m); | ||
| 627 | + k.collapse(n) | ||
| 628 | + } | ||
| 629 | + k.insertNode(k.createContextualFragment(l)) | ||
| 630 | + } | ||
| 631 | + return m | ||
| 632 | + } | ||
| 633 | + | ||
| 634 | + function e(k, l) { | ||
| 635 | + var j = document.createElement("script"); | ||
| 636 | + j.setAttribute("src", k); | ||
| 637 | + j.setAttribute("type", "text/javascript"); | ||
| 638 | + j.setAttribute("charset", "gbk"); | ||
| 639 | + if (j.addEventListener) { | ||
| 640 | + j.addEventListener("load", function (n) { | ||
| 641 | + var m = n.target; | ||
| 642 | + m.parentNode.removeChild(m); | ||
| 643 | + if (l) { | ||
| 644 | + l() | ||
| 645 | + } | ||
| 646 | + }, false) | ||
| 647 | + } else { | ||
| 648 | + if (j.attachEvent) { | ||
| 649 | + j.attachEvent("onreadystatechange", function (n) { | ||
| 650 | + var m = window.event.srcElement; | ||
| 651 | + if (m && (m.readyState == "loaded" || m.readyState == "complete")) { | ||
| 652 | + m.parentNode.removeChild(m); | ||
| 653 | + if (l) { | ||
| 654 | + l() | ||
| 655 | + } | ||
| 656 | + } | ||
| 657 | + }) | ||
| 658 | + } | ||
| 659 | + } | ||
| 660 | + setTimeout(function () { | ||
| 661 | + document.getElementsByTagName("head")[0].appendChild(j); | ||
| 662 | + j = null | ||
| 663 | + }, 1) | ||
| 664 | + } | ||
| 665 | + g.getTime = function (j) { | ||
| 666 | + this.curTime = isNaN(j) ? new Date() : new Date(j) | ||
| 667 | + } | ||
| 668 | +})(); |