百度地圖動態添加軌跡座標點

1、首先成爲百度開發者(注意選擇瀏覽器端和JavascriptAPI)

2、申請祕鑰(如果不想對訪問網址進行限制的話   Referer白名單使用 * )

3、生成軌跡代碼

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>百度地圖軌跡運動</title>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=YOUR KEY"></script>
    <style type="text/css">
        #allmap {
            width: auto;
            height: 600px;
            border: 1px solid gray;
        }

        #user1 {
            top: 80px;
        }

        #user2 {
            top: 200px;
        }

        .user-list {
            right: 25px;
            position: fixed;
            border: 1px solid #c0c0c0;
            width: 180px;
            height: 110px;
            background: #fff;
            border-radius: 10px;
            filter: alpha(Opacity=80);
            -moz-opacity: 0.8;
            opacity: 0.8;
        }

            .user-list ul {
                list-style-type: none;
                padding-left: 10px;
            }

                .user-list ul li {
                    padding-bottom: 10px;
                }
    </style>
</head>
<body>
    經度:<input id="lng" type="text" placeholder="輸入地圖經度">
    緯度:<input id="lat" type="text" placeholder="輸入地圖緯度" required="">
    <button id="addPoint" οnclick="run();">添加軌跡</button><br /><br />
    <div id="allmap"></div>
    <div id="user1" class="user-list">
        <ul>
            <li>姓名:張三</li>
            <li>職務:3</li>
            <li>電話:13552307638</li>
        </ul>
    </div>
    <div id="user2" class="user-list">
        <ul>
            <li>姓名:李四</li>
            <li>職務:3</li>
            <li>電話:13552307638</li>
        </ul>
    </div>
    <script type="text/javascript">
        //百度地圖API
        var map = new BMap.Map("allmap");
        map.centerAndZoom(new BMap.Point(116.404, 39.915), 13);
        map.enableScrollWheelZoom(true);                            //啓動滾輪放大縮小
        map.addControl(new BMap.NavigationControl());               // 添加平移縮放控件
        map.addControl(new BMap.ScaleControl());                    // 添加比例尺控件
        map.addControl(new BMap.OverviewMapControl());              //添加縮略地圖控件

        var poinArr = new Array();

        poinArr[poinArr.length] = new BMap.Point(106.521436, 29.532288);    //起點默認爲重慶
        
        //起點-重慶         106.521436, 29.532288    添加到文本框的幾點座標點(測試),注意座標點需要有規律些喔!
        //終點-西安         108.983569, 34.285675
        //終點-北京         116.404449, 39.920423
        //終點-瀋陽         123.432790, 41.808644
        window.run = function () {
            var log = document.getElementById("lng").value;             //地圖經度
            var lat = document.getElementById("lat").value;             //地圖緯度
           
            //根據用戶添加的點動態添加地圖軌跡
            poinArr[poinArr.length] = new BMap.Point(log, lat);
            map.clearOverlays();                        //清除地圖上所有的覆蓋物
            var driving = new BMap.DrivingRoute(map);    //創建駕車實例

            if (poinArr.length > 1) {
                for (var i = 1; i < poinArr.length; i++) {
                    driving.search(poinArr[i - 1], poinArr[i]);
                }
            }
            driving.setSearchCompleteCallback(function () {
                var pts = driving.getResults().getPlan(0).getRoute(0).getPath();    //通過駕車實例,獲得一系列點的數組
                var polyline = new BMap.Polyline(pts);
                map.addOverlay(polyline);
                var m1 = new BMap.Marker(poinArr[0]);
                map.addOverlay(m1);                                         //紅標記
                lab1 = new BMap.Label("起點", { position: poinArr[0] });
                map.addOverlay(lab1);                                       //標記起點
                for (var i = 1; i < poinArr.length; i++) {
                    var m = new BMap.Marker(poinArr[i]);
                    map.addOverlay(m);
                    lab = new BMap.Label("終點", { position: poinArr[i] });
                    map.addOverlay(lab);
                }
                setTimeout(function () {
                    map.setViewport(poinArr);          //調整到最佳視野
                }, 1000);
            });
        }
    </script>
</body>
</html>

參考文章:https://www.cnblogs.com/ttxbc/p/6575307.html

https://blog.csdn.net/u012954380/article/details/79967531?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章