2018-12-05 百度地圖API的調用

關于百度地圖API的調用
1.引用百度API蝉稳,注冊自己的key

    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=h3vKREEs4sNt2YKxk9ZB0TZ0"></script>

    <%--使用LuShu2,LuShu.js不可寄月,圖形不會跟隨方向轉--%>
    <script src="../../CommonNew/js/LuShu2.js" type="text/javascript"></script>

2.添加到頁面上

<div id="map_canvas"></div>

3.對地圖的操作

<script type="text/javascript">
                var winWidth = 0;
                var winHeight = 0;
                function findDimensions() { //函數:獲取尺寸
                    //獲取窗口寬度
                    if (window.innerWidth) {
                        winWidth = window.innerWidth;
                    }
                    else if ((document.body) && (document.body.clientWidth)) {
                        winWidth = document.body.clientWidth;
                    }

                    //獲取窗口高度
                    if (window.innerHeight) {
                        winHeight = window.innerHeight;
                    }
                    else if ((document.body) && (document.body.clientHeight)) {
                        winHeight = document.body.clientHeight;
                    }

                    //通過深入Document內部對body進行檢測信姓,獲取窗口大小
                    if (document.documentElement && document.documentElement.clientHeight && document.documentElement.clientWidth) {
                        winHeight = document.documentElement.clientHeight;
                        winWidth = document.documentElement.clientWidth;
                    }

                    //設置div的具體寬度=窗口的寬度的%
                    if (document.getElementById("map_canvas")) {
                        //document.getElementById("map").style.width = winWidth*0.98 + "px";
                        document.getElementById("map_canvas").style.height = winHeight * 0.98 + "px";
                    }
                }


                findDimensions();
                window.onresize = findDimensions;

                var map = new BMap.Map('map_canvas');
                map.enableScrollWheelZoom();
                map.centerAndZoom(new BMap.Point(116.403847, 39.915526), 5);     // 初始化地圖,設置中心點坐標和地圖級別
                var lushu;
                var arrPois = []; //坐標點數組
                var markPois = []; //坐標點顯示信息窗數組

                function GetLuShu() {
                    map.clearOverlays();
                    lushu = new BMapLib.LuShu(map, arrPois, {
                        defaultContent: "test", //"從天安門到百度大廈"
                        autoView: true, //是否開啟自動視野調整从绘,如果開啟那么路書在運動過程中會根據視野自動調整
                        icon: new BMap.Icon('../../Common/Image/icon_track_car.png', new BMap.Size(40, 20), { anchor: new BMap.Size(27, 13) }),
                        speed: 8000,
                        enableRotation: true, //是否設置marker隨著道路的走向進行旋轉
                        landmarkPois: markPois
                    });
                    map.addOverlay(new BMap.Polyline(arrPois, { strokeColor: '#111' }));
                    map.setViewport(arrPois); //根據提供的地理區(qū)域或坐標設置地圖視野游昼,調整后的視野會保證包含提供的地理區(qū)域或坐標
                    //lushu.start();
                }

                // 定義一個開始軌跡回放控件類,即function
                function StartControl() {
                    // 默認突辆酰靠位置和偏移量
                    this.defaultAnchor = BMAP_ANCHOR_TOP_RIGHT;
                    this.defaultOffset = new BMap.Size(130, 10);
                }

                // 通過JavaScript的prototype屬性繼承于BMap.Control
                StartControl.prototype = new BMap.Control();

                // 自定義控件必須實現自己的initialize方法,并且將控件的DOM元素返回
                // 在本方法中創(chuàng)建個div元素作為控件的容器,并將其添加到地圖容器中
                StartControl.prototype.initialize = function(map) {
                    // 創(chuàng)建一個DOM元素
                    var div = document.createElement("divStart");
                    // 添加文字說明
                    div.appendChild(document.createTextNode("開始"));
                    // 設置樣式
                    div.style.fontSize = "14px";
                    div.style.padding = "2px";
                    div.style.color = "white";
                    div.style.cursor = "pointer";
                    div.style.border = "1px solid gray";
                    div.style.backgroundColor = "#1e90ff";
                    div.style.right = "100px";
                    div.style.borderRadius = "6px";
                    // 綁定開始事件
                    div.onclick = function(e) {
                        lushu.start();
                        lushu.showInfoWindow();
                    }
                    // 添加DOM元素到地圖中
                    map.getContainer().appendChild(div);
                    // 將DOM元素返回
                    return div;
                }

                // 定義一個暫停軌跡回放控件類,即function
                function StopControl() {
                    // 默認停靠位置和偏移量
                    this.defaultAnchor = BMAP_ANCHOR_TOP_RIGHT;
                    this.defaultOffset = new BMap.Size(90, 10);
                }

                // 通過JavaScript的prototype屬性繼承于BMap.Control
                StopControl.prototype = new BMap.Control();

                // 自定義控件必須實現自己的initialize方法,并且將控件的DOM元素返回
                // 在本方法中創(chuàng)建個div元素作為控件的容器,并將其添加到地圖容器中
                StopControl.prototype.initialize = function(map) {
                    // 創(chuàng)建一個DOM元素
                    var div = document.createElement("divStop");
                    // 添加文字說明
                    div.appendChild(document.createTextNode("暫停"));
                    // 設置樣式
                    div.style.fontSize = "14px";
                    div.style.padding = "2px";
                    div.style.color = "white";
                    div.style.cursor = "pointer";
                    div.style.border = "1px solid gray";
                    div.style.backgroundColor = "#d81e06";
                    div.style.right = "50px";
                    div.style.borderRadius = "6px";
                    // 綁定開始事件
                    div.onclick = function(e) {
                        lushu.pause();
                    }
                    // 添加DOM元素到地圖中
                    map.getContainer().appendChild(div);
                    // 將DOM元素返回
                    return div;
                }

                // 定義一個暫停軌跡回放控件類,即function
                function RestartControl() {
                    // 默認土兄靠位置和偏移量
                    this.defaultAnchor = BMAP_ANCHOR_TOP_RIGHT;
                    this.defaultOffset = new BMap.Size(20, 10);
                }

                // 通過JavaScript的prototype屬性繼承于BMap.Control
                RestartControl.prototype = new BMap.Control();

                // 自定義控件必須實現自己的initialize方法,并且將控件的DOM元素返回
                // 在本方法中創(chuàng)建個div元素作為控件的容器,并將其添加到地圖容器中
                RestartControl.prototype.initialize = function(map) {
                    // 創(chuàng)建一個DOM元素
                    var div = document.createElement("divRestart");
                    // 添加文字說明
                    div.appendChild(document.createTextNode("重新開始"));
                    // 設置樣式
                    div.style.padding = "2px";
                    div.style.fontSize = "14px";
                    div.style.color = "white";
                    div.style.cursor = "pointer";
                    div.style.border = "1px solid gray";
                    div.style.backgroundColor = "#0b988f";
                    div.style.borderRadius = "6px";
                    // 綁定開始事件
                    div.onclick = function(e) {
                        lushu.stop();
                        lushu.start();
                    }
                    // 添加DOM元素到地圖中
                    map.getContainer().appendChild(div);
                    // 將DOM元素返回
                    return div;
                }

                map.addControl(new BMap.NavigationControl());
                // 將自定義控件添加到地圖當中
                map.addControl(new StartControl());
                // 將自定義控件添加到地圖當中
                map.addControl(new StopControl());
                // 將自定義控件添加到地圖當中
                map.addControl(new RestartControl());
        </script>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末恰画,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子瓷马,更是在濱河造成了極大的恐慌拴还,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件欧聘,死亡現場離奇詭異片林,居然都是意外死亡,警方通過查閱死者的電腦和手機怀骤,發(fā)現死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門费封,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蒋伦,你說我怎么就攤上這事弓摘。” “怎么了凉敲?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵衣盾,是天一觀的道長。 經常有香客問我爷抓,道長势决,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任蓝撇,我火速辦了婚禮果复,結果婚禮上,老公的妹妹穿的比我還像新娘渤昌。我一直安慰自己虽抄,他們只是感情好,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布独柑。 她就那樣靜靜地躺著迈窟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪忌栅。 梳的紋絲不亂的頭發(fā)上车酣,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機與錄音,去河邊找鬼湖员。 笑死贫悄,一個胖子當著我的面吹牛,可吹牛的內容都是我干的娘摔。 我是一名探鬼主播窄坦,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼凳寺!你這毒婦竟也來了鸭津?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤读第,失蹤者是張志新(化名)和其女友劉穎曙博,沒想到半個月后拥刻,有當地人在樹林里發(fā)現了一具尸體怜瞒,經...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年般哼,在試婚紗的時候發(fā)現自己被綠了吴汪。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡蒸眠,死狀恐怖漾橙,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情楞卡,我是刑警寧澤霜运,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站蒋腮,受9級特大地震影響淘捡,放射性物質發(fā)生泄漏。R本人自食惡果不足惜池摧,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一焦除、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧作彤,春花似錦膘魄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至绢慢,卻和暖如春灿渴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工逻杖, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留奋岁,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓荸百,卻偏偏與公主長得像闻伶,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子够话,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355