1. 程式人生 > >基於百度地圖開發網易班車地圖導航展示

基於百度地圖開發網易班車地圖導航展示

col uri type open one 記錄 length () 代碼

來到網易已經不知不覺一兩個月了,最近把原來租的房子出租後,打算重新租一套房子。找到一個好房子不容易,首先考慮交通問題,上下班時間不能耗費太長,網易提供了遍布全城的班車系統,不過說實話,貌似只有文字說明(http://crystalpot.cn/menus/bus),看到這些地名,對於我一個外鄉人來說內心是懵X的,想到如果有一個如高德地圖版的班車導航就好了,在哪個小區租房,附近的班車信息一目了然,想到便去做,翻了翻百度地圖官方文檔,寫了幾行代碼,大致實現了需求。

預覽

技術分享圖片

技術分享圖片

技術分享圖片

如圖所示,只有寥寥幾個站點,因為沒過多久,有個租房平臺就幫我在公司附近找到了房源,剩下的班車數據我也就擱淺。這裏曬出自己的代碼,記錄一下。

代碼

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
    <style type="text/css">
        body, html, #allmap {
            width: 100%;
            height: 100%;
            overflow: hidden;
            margin: 0;
            font-family: fantasy;
        }
        .title{
            color: #cc5a2f;
            font-size: 14px;
        }
        .content{
            color: #222;
            font-size: 14px;
        }
    </style>
    <script type="text/javascript"
            src="http://api.map.baidu.com/api?v=2.0&ak=cRFeXxS642Nkclc8cAvzumelvIbju9Gx"></script>
    <title>網易班車地圖展示</title>
</head>
<body>
<div id="allmap"></div>
</body>
</html>
<script type="text/javascript">
    //標註點經緯度集合
    var points = [
        ['120.077218', '30.333151', '新竹橋公交站','上班 7:35'],
        ['120.087068', '30.342169', '墩池路(顏寧醫療門診部)','上班 7:40'],
        ['120.091712','30.336725','北港橋公交站','上班 7:45'],
        ['120.103673','30.311658','機動車輛管理所公交站','上班 7:55'],
        ['120.126191','30.284389','古翠路華星路口','上班 8:07'],
        //等待愛心人士繼續完善,參考文檔http://crystalpot.cn/menus/bus
    ];
    // 百度地圖API功能
    var map = new BMap.Map("allmap", {minZoom: 12, maxZoom: 19});    // 創建Map實例
    map.centerAndZoom(new BMap.Point(120.1972695145, 30.1933909541), 12);  // 初始化地圖,設置中心點坐標和地圖級別
    //添加地圖類型控件
    map.addControl(new BMap.MapTypeControl({
        mapTypes: [
            BMAP_NORMAL_MAP,
            BMAP_HYBRID_MAP
        ]
    }));
    map.setCurrentCity("杭州");          // 設置地圖顯示的城市,此項是必須設置的
    map.enableScrollWheelZoom(true);     //開啟鼠標滾輪縮放
    //循環添加標註點
    for (var i = 0; i < points.length; i++) {
        var point = new BMap.Point(points[i][0], points[i][1]); //新建一個點
        var marker = new BMap.Marker(point);  // 創建標註
        // marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳動的動畫
        marker.setTitle(i); //設置標註信息
        marker.addEventListener("mouseover",  //添加鼠標移入移除事件
            function () {
                var opts = {
                    width: 0,     // 信息窗口寬度
                    height: 0,     // 信息窗口高度
                    title: "<span style='display: none'></span>",  // 信息窗口標題
                };
                var infoWindow = new BMap.InfoWindow(infoStyle(points[this.getTitle()]), opts);  // 創建信息窗口對象
                this.openInfoWindow(infoWindow, this.getPosition());      // 打開信息窗口
            });
        marker.addEventListener("mouseout", function () {
            map.closeInfoWindow();
        });
        map.addOverlay(marker);   // 將標註添加到地圖中
    }
    function infoStyle(point) {
        var dom = "<p class='title'>"+point[2]+"</p>";
        dom += "<p class='content'>"+point[3]+"</p>";
        return dom;
    }
</script>

工具

百度地圖JavaScript API

百度地圖拾取坐標系統

基於百度地圖開發網易班車地圖導航展示