日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

百度地图同时显示多个路书

發布時間:2025/3/18 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 百度地图同时显示多个路书 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

?

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=自己的ak"></script>
<script type="text/javascript" src="js/lushu.js"></script><!--路書 -->

var BMapLib = window.BMapLib = BMapLib || {}; (function() {var b, a = b = a || {version : "1.5.0"};a.guid = "$BAIDU$";(function() {window[a.guid] = window[a.guid] || {};a.dom = a.dom || {};a.dom.g = function(e) {if ("string" == typeof e || e instanceof String) {return document.getElementById(e)} else {if (e && e.nodeName && (e.nodeType == 1 || e.nodeType == 9)) {return e}}return null};a.g = a.G = a.dom.g;a.lang = a.lang || {};a.lang.isString = function(e) {return "[object String]" == Object.prototype.toString.call(e)};a.isString = a.lang.isString;a.dom._g = function(e) {if (a.lang.isString(e)) {return document.getElementById(e)}return e};a._g = a.dom._g;a.dom.getDocument = function(e) {e = a.dom.g(e);return e.nodeType == 9 ? e : e.ownerDocument || e.document};a.browser = a.browser || {};a.browser.ie = a.ie = /msie (\d+\.\d+)/i.test(navigator.userAgent) ? (document.documentMode || +RegExp["\x241"]): undefined;a.dom.getComputedStyle = function(f, e) {f = a.dom._g(f);var h = a.dom.getDocument(f), g;if (h.defaultView && h.defaultView.getComputedStyle) {g = h.defaultView.getComputedStyle(f, null);if (g) {return g[e] || g.getPropertyValue(e)}}return ""};a.dom._styleFixer = a.dom._styleFixer || {};a.dom._styleFilter = a.dom._styleFilter || [];a.dom._styleFilter.filter = function(f, j, k) {for (var e = 0, h = a.dom._styleFilter, g; g = h[e]; e++) {if (g = g[k]) {j = g(f, j)}}return j};a.string = a.string || {};a.string.toCamelCase = function(e) {if (e.indexOf("-") < 0 && e.indexOf("_") < 0) {return e}return e.replace(/[-_][^-_]/g, function(f) {return f.charAt(1).toUpperCase()})};a.dom.getStyle = function(g, f) {var i = a.dom;g = i.g(g);f = a.string.toCamelCase(f);var h = g.style[f] || (g.currentStyle ? g.currentStyle[f] : "")|| i.getComputedStyle(g, f);if (!h) {var e = i._styleFixer[f];if (e) {h = e.get ? e.get(g) : a.dom.getStyle(g, e)}}if (e = i._styleFilter) {h = e.filter(f, h, "get")}return h};a.getStyle = a.dom.getStyle;a.dom._NAME_ATTRS = (function() {var e = {cellpadding : "cellPadding",cellspacing : "cellSpacing",colspan : "colSpan",rowspan : "rowSpan",valign : "vAlign",usemap : "useMap",frameborder : "frameBorder"};if (a.browser.ie < 8) {e["for"] = "htmlFor";e["class"] = "className"} else {e.htmlFor = "for";e.className = "class"}return e})();a.dom.setAttr = function(f, e, g) {f = a.dom.g(f);if ("style" == e) {f.style.cssText = g} else {e = a.dom._NAME_ATTRS[e] || e;f.setAttribute(e, g)}return f};a.setAttr = a.dom.setAttr;a.dom.setAttrs = function(g, e) {g = a.dom.g(g);for ( var f in e) {a.dom.setAttr(g, f, e[f])}return g};a.setAttrs = a.dom.setAttrs;a.dom.create = function(g, e) {var h = document.createElement(g), f = e || {};return a.dom.setAttrs(h, f)};a.object = a.object || {};a.extend = a.object.extend = function(g, e) {for ( var f in e) {if (e.hasOwnProperty(f)) {g[f] = e[f]}}return g}})();var c = BMapLib.LuShu = function(g, f, e) {if (!f || f.length < 1) {return}this._map = g;this._path = f;this.i = 0;this._setTimeoutQuene = [];this._projection = this._map.getMapType().getProjection();this._opts = {icon : null,speed : 4000,defaultContent : ""};this._setOptions(e);this._rotation = 0;if (!this._opts.icon instanceof BMap.Icon) {this._opts.icon = defaultIcon}};c.prototype._setOptions = function(e) {if (!e) {return}for ( var f in e) {if (e.hasOwnProperty(f)) {this._opts[f] = e[f]}}};c.prototype.start = function() {var f = this, e = f._path.length;if (f.i && f.i < e - 1) {if (!f._fromPause) {return} else {if (!f._fromStop) {f._moveNext(++f.i)}}} else {f._addMarker();f._timeoutFlag = setTimeout(function() {f._addInfoWin();if (f._opts.defaultContent == "") {f.hideInfoWindow()}f._moveNext(f.i)}, 400)}this._fromPause = false;this._fromStop = false}, c.prototype.stop = function() {this.i = 0;this._fromStop = true;clearInterval(this._intervalFlag);this._clearTimeout();for (var g = 0, f = this._opts.landmarkPois, e = f.length; g < e; g++) {f[g].bShow = false}};c.prototype.pause = function() {clearInterval(this._intervalFlag);this._fromPause = true;this._clearTimeout()};c.prototype.hideInfoWindow = function() {this._overlay._div.style.visibility = "hidden"};c.prototype.showInfoWindow = function() {this._overlay._div.style.visibility = "visible"};a.object.extend(c.prototype,{_addMarker : function(f) {if (this._marker) {this.stop();this._map.removeOverlay(this._marker);clearTimeout(this._timeoutFlag)}this._overlay&& this._map.removeOverlay(this._overlay);var e = new BMap.Marker(this._path[0]);this._opts.icon && e.setIcon(this._opts.icon);this._map.addOverlay(e);e.setAnimation(BMAP_ANIMATION_DROP);this._marker = e},_addInfoWin : function() {var f = this;var e = new d(f._marker.getPosition(),f._opts.defaultContent);e.setRelatedClass(this);this._overlay = e;this._map.addOverlay(e)},_getMercator : function(e) {return this._map.getMapType().getProjection().lngLatToPoint(e)},_getDistance : function(f, e) {return Math.sqrt(Math.pow(f.x - e.x, 2)+ Math.pow(f.y - e.y, 2))},_move : function(n, j, m) {var i = this, h = 0, e = 10, f = this._opts.speed/ (1000 / e), l = this._projection.lngLatToPoint(n), k = this._projection.lngLatToPoint(j), g = Math.round(i._getDistance(l, k)/ f);if (g < 1) {i._moveNext(++i.i);return}i._intervalFlag = setInterval(function() {if (h >= g) {clearInterval(i._intervalFlag);if (i.i > i._path.length) {return}i._moveNext(++i.i)} else {h++;var o = m(l.x, k.x, h, g), r = m(l.y, k.y, h, g), q = i._projection.pointToLngLat(new BMap.Pixel(o, r));if (h == 1) {var p = null;if (i.i - 1 >= 0) {p = i._path[i.i - 1]}if (i._opts.enableRotation == true) {i.setRotation(p, n, j)}if (i._opts.autoView) {if (!i._map.getBounds().containsPoint(q)) {i._map.setCenter(q)}}}i._marker.setPosition(q);i._setInfoWin(q)}}, e)},setRotation : function(l, f, m) {var j = this;var e = 0;f = j._map.pointToPixel(f);m = j._map.pointToPixel(m);if (m.x != f.x) {var k = (m.y - f.y) / (m.x - f.x), g = Math.atan(k);e = g * 360 / (2 * Math.PI);if (m.x < f.x) {e = -e + 90 + 90} else {e = -e}j._marker.setRotation(-e)} else {var h = m.y - f.y;var i = 0;if (h > 0) {i = -1} else {i = 1}j._marker.setRotation(-i * 90)}return},linePixellength : function(f, e) {return Math.sqrt(Math.abs(f.x - e.x)* Math.abs(f.x - e.x) + Math.abs(f.y - e.y)* Math.abs(f.y - e.y))},pointToPoint : function(f, e) {return Math.abs(f.x - e.x) * Math.abs(f.x - e.x)+ Math.abs(f.y - e.y) * Math.abs(f.y - e.y)},_moveNext : function(e) {var f = this;if (e < this._path.length - 1) {f._move(f._path[e], f._path[e + 1],f._tween.linear)}},_setInfoWin : function(g) {var f = this;if (!f._overlay) {return}f._overlay.setPosition(g, f._marker.getIcon().size);var e = f._troughPointIndex(g);if (e != -1) {clearInterval(f._intervalFlag);f._overlay.setHtml(f._opts.landmarkPois[e].html);f._overlay.setPosition(g,f._marker.getIcon().size);f._pauseForView(e)} else {f._overlay.setHtml(f._opts.defaultContent)}},_pauseForView : function(e) {var g = this;var f = setTimeout(function() {g._moveNext(++g.i)}, g._opts.landmarkPois[e].pauseTime * 1000);g._setTimeoutQuene.push(f)},_clearTimeout : function() {for ( var e in this._setTimeoutQuene) {clearTimeout(this._setTimeoutQuene[e])}this._setTimeoutQuene.length = 0},_tween : {linear : function(f, j, h, i) {var e = f, l = j - f, g = h, k = i;return l * g / k + e}},_troughPointIndex : function(f) {var h = this._opts.landmarkPois, j;for (var g = 0, e = h.length; g < e; g++) {if (!h[g].bShow) {j = this._map.getDistance(new BMap.Point(h[g].lng, h[g].lat), f);if (j < 10) {h[g].bShow = true;return g}}}return -1}});function d(e, f) {this._point = e;this._html = f}d.prototype = new BMap.Overlay();d.prototype.initialize = function(e) {var f = this._div = a.dom.create("div",{style : "border:solid 1px #ccc;width:auto;min-width:50px;text-align:center;position:absolute;background:#fff;color:#000;font-size:12px;border-radius: 10px;padding:5px;white-space: nowrap;"});f.innerHTML = this._html;e.getPanes().floatPane.appendChild(f);this._map = e;return f};d.prototype.draw = function() {this.setPosition(this.lushuMain._marker.getPosition(),this.lushuMain._marker.getIcon().size)};a.object.extend(d.prototype, {setPosition : function(h, i) {var f = this._map.pointToOverlayPixel(h), e = a.dom.getStyle(this._div, "width"), g = a.dom.getStyle(this._div, "height");overlayW = parseInt(this._div.clientWidth || e, 10),overlayH = parseInt(this._div.clientHeight || g, 10);this._div.style.left = f.x - overlayW / 2 + "px";this._div.style.bottom = -(f.y - i.height) + "px"},setHtml : function(e) {this._div.innerHTML = e},setRelatedClass : function(e) {this.lushuMain = e}}) })(); 路書js

?

1 function showallrecord(starttime,endtime){//顯示多條開始結束時間之間的自行車路書 2 var bikeId=null; 3 $.getJSON("./GetBickIdServlet",function(json){ 4 bikeId = json;//所有自行車編號 5 }); 6 var json={ 7 "StartTime":starttime,//開始時間 8 "EndTime":endtime//結束時間 9 }; 10 //創建二維數組,例如pointArray[i]中i自行車編號,pointArray[i][j]為編號為i的自行車的所有借還站點信息 11 $.getJSON("./GetAllRecordServlet",{json:JSON.stringify(json)},function(json){ 12 var j = 0; 13 var stationlonlist=new Array(); 14 var stationlatlist=new Array(); 15 var pointArray=new Array(); 16 var bikeIdlist = new Array(); 17 for(var i = 0; i < bikeId.length; i++){ 18 stationlonlist[i] = new Array(); 19 stationlatlist[i] = new Array(); 20 pointArray[i] = new Array(); 21 bikeIdlist[i] = bikeId[i].BikeId; 22 } 23 var tt = json.length < 200?json.length:200;//如果查詢出來的自行車借還站點記錄多于200條,則顯示200條。(待完善) 24 for (var row = 0; row < pointArray.length; row++) { 25 while (j < tt) { 26 var k = j; 27 var p = 0; 28 var stationlon = parseFloat(json[j].Stationlon);// String類型轉換成float類型 29 stationlonlist[row][p]=stationlon;// 將stationlon放到stationlonlist里 30 var stationlat = parseFloat(json[j].Stationlat); 31 stationlatlist[row][p]=stationlat;// 將stationlat放到stationlatlist里 32 pointArray[row][p] = new BMap.Point(stationlon,stationlat); 33 while (bikeIdlist[row] == json[k + 1].BikeId) { 34 k++; 35 p++; 36 stationlon= parseFloat(json[k].Stationlon);// String類型轉換成float類型 37 stationlonlist[row][p]=stationlon;// 將stationlon放到stationlonlist里 38 stationlat= parseFloat(json[k].Stationlat); 39 stationlatlist[row][p] =stationlat;// 將stationlat放到stationlatlist里 40 pointArray[row][p] = new BMap.Point(stationlon, stationlat); 41 } 42 addMarkertest(pointArray,row);//添加標記點 43 j = k + 1; 44 break; 45 } 46 var bikespeedtest = speedtest(pointArray,row);//每輛自行車路書的速度 47 polylinetest(pointArray,row,stationlonlist,stationlatlist);//每輛自行車借還站點間畫折線 48 lushutest(pointArray,bikespeedtest,row,stationlonlist,stationlatlist);//每輛自行車借還站點的路書路徑 49 } 50 map.setViewport(pointArray); 51 }); 52 }

?

1 function speedtest(pointArray,row){//根據自行車的借還時間差來顯示不同的路書速度(待完善) 2 var distance = 0;//直行車走過的路徑長度 3 for(var i = 0; i < pointArray[row].length-1; i++){ 4 distance += (map.getDistance(pointArray[row][i],pointArray[row][i+1]));//自行車借還站點的路徑長度 5 } 6 return distance/20;//速度=路徑長度/時間(此處時間固定,可改為根據數據庫讀取的時間) 7 } 8 9 // 10 function polylinetest(pointArray,row,stationlonlist,stationlatlist){ 11 var points = new Array(); 12 for(var i = 0; i < pointArray[row].length; i++){ 13 points[i] = new BMap.Point(parseFloat(stationlonlist[row][i]), parseFloat(stationlatlist[row][i])); 14 } 15 //增加點與點之間的連線 16 var polyline = new BMap.Polyline(points, { 17 strokeColor : getColor(), 18 strokeWeight : 2, 19 strokeOpacity : 0.5 20 }); // 創建折線 21 map.addOverlay(polyline); // 繪制折線 22 } 23 24 // 25 function lushutest(pointArray,bikespeedtest,row,stationlonlist,stationlatlist){ 26 var points = new Array(); 27 for(var i = 0; i < pointArray[row].length; i++){ 28 points[i] = new BMap.Point(parseFloat(stationlonlist[row][i]), parseFloat(stationlatlist[row][i])); 29 } 30 var lushu = new BMapLib.LuShu(map, points, { 31 defaultContent : "", 32 autoView : true, // 是否開啟自動視野調整,如果開啟那么路書在運動過程中會根據視野自動調整 33 icon : new BMap.Icon('photo/bike.png', new BMap.Size(22, 22), { 34 anchor : new BMap.Size(10, 25) 35 }), 36 // enableRotation: true, //是否設置marker隨著道路的走向進行旋轉 37 speed : bikespeedtest, 38 }); 39 lushu.start(); 40 } 41 43 //生成折線的隨機顏色 44 function sj16(){ 45 var sjshu=Math.round(Math.random()*10*2); 46 do 47 { 48 sjshu=Math.round(Math.random()*10*2); 49 }while (sjshu>=14); 50 return sjshu; 51 } 52 function getColor(){ 53 var hex = ['1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']; 54 var yanse=""; 55 for(i=0; i<6; i++){ 56 yanse+=hex[sj16()]; 57 } 58 return "#"+yanse 59 }

效果圖:

轉載于:https://my.oschina.net/landiljy/blog/651043

總結

以上是生活随笔為你收集整理的百度地图同时显示多个路书的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 色日韩 | 国产原创在线观看 | 一区黄色 | 欧美做爰猛烈床戏大尺度 | 精品视频一二三 | 欧美国产日韩在线视频 | 老湿机69福利区午夜x片 | 婷婷玖玖 | 色人综合 | 欧美日韩国产精品成人 | 亚洲av成人无码一区二区三区在线观看 | 亚洲阿v天堂 | 四虎一区二区 | 在线小视频你懂的 | 不卡精品视频 | 波多野结衣一二三区 | 国产不雅视频 | 国产成人无码性教育视频 | 精品一区二区三区人妻 | 国产欧美久久久精品免费 | 国产精品每日更新 | 黄色工厂在线观看 | 夜色一区 | 国产精品丝袜黑色高跟 | 欧美精品一区二区蜜臀亚洲 | 美女又爽又黄又免费 | 在线观看视频一区二区 | av一区二 | 美女视频黄是免费 | 婷婷久久综合网 | 国产精品天天狠天天看 | 欧美大片一区二区 | 国精产品乱码一区一区三区四区 | 欧美成在线 | 国产一区二区精彩视频 | 黄色av电影网站 | 婷婷6月天 | 激情网站免费 | 一区二区三区观看 | 欧美成本人视频 | 中国一级特黄真人毛片免费观看 | 欧美午夜三级 | 久久国产视频精品 | 精品午夜久久久 | 欧美一区二 | 秋霞在线视频观看 | 女人18毛片毛片毛片毛片区二 | 日韩久久精品电影 | 日韩免费精品 | 亚欧三级 | 一级黄色片网址 | 无码人妻丰满熟妇区毛片蜜桃精品 | 日日夜夜狠狠爱 | 日韩一区二区在线视频 | 日本精品一区二区三区四区的功能 | 亚洲aa视频 | 国产成人精品亚洲日本在线观看 | 中文字幕一区视频 | 中文字幕3| 韩国毛片网站 | 毛片高清免费 | 日本人妻熟妇久久久久久 | 国产精品播放 | 国产免费黄色 | 中国黄色网页 | 亚洲精美视频 | 日本一级淫片色费放 | 黄色一级小说 | 成人在线视频在线观看 | 日本午夜一区 | 涩涩资源站 | 国产精品日韩一区二区三区 | 国内av自拍| 亚洲成年 | 午夜影院在线观看 | 青草精品在线 | 国产激情精品 | 秘密的基地 | 五十路六十路 | 国产深喉视频一区二区 | 欧美日韩亚洲国产一区 | 日韩伊人 | 在线中文字幕视频 | 波多野结衣一二区 | 图书馆的女友动漫在线观看 | 四虎影院在线观看免费 | 亚洲国产精品女人久久久 | 日韩欧美在线观看视频 | 嫩草天堂| 黄色三级免费观看 | 青少年xxxxx性开放hg | 亚洲成人黄色网址 | 能直接看的av网站 | 亚洲不卡av一区二区 | 超碰人人人人人人 | 天天狠天天操 | 欧美国产日韩在线观看成人 | 91黄漫| 性猛交富婆╳xxx乱大交麻豆 |