如何在Vue項目中使用百度地圖


前言

最近做項目,項目要求某個網頁中嵌入一個地圖控件,對這個控件的要求是能動態獲取后台數據傳來的json數據中的位置信息。

經過一番篩選(嘗試了好幾種地圖),我最后在眾多地圖中選擇了百度地圖。

地圖選好了 ,那么我們怎么把地圖控件放入網頁中使用呢?

前置操作

以下是前置操作,一共四步:

  • 第一步:下載百度地圖包 vue-baidu-map

    npm i vue-baidu-map --save

  • 第二步:在對應網頁的main.js中引用百度地圖

    import BaiduMap from 'vue-baidu-map';
    Vue.use(BaiduMap, {
          /* Visit http://lbsyun.baidu.com/apiconsole/key for details about app key. */
          ak: 'YOUR_APP_KEY'
    })
  • 第三步:去百度API申請地圖密鑰(訪問應用AK)

    • 上一步添加的代碼的注釋中為申請地圖密鑰的網址:點我去申請密鑰網址
    • 百度地圖需要用戶創建應用,然后會給這個應用申請一個密鑰(訪問應用AK),有了這個AK才能在項目中引用地圖。申請密鑰的流程圖示寫在后面了。
  • 第四步:填寫地圖AK

    • 在第二步main.js文件中添加的代碼的ak:后面輸入你申請好的地圖AK。
    • 在你的html頁面添加如下代碼,ak后面添加你申請好的地圖AK。
<script type="text/javascript" src="//api.map.baidu.com/api?v=2.0&ak=你的AK"></script>

Vue組件內的操作

創建一個map.vue組件,以下是在Vue組件中的操作:

  • 第一步:在template中創建一個div,我們的地圖組件就創建在這個div中。
    • 注意:這個div一定要定寬定高,不然地圖組件無法顯示。
    <template>
        <div id="map" style="width:200px;height:200px;"></div>
    </template>
  • 第二步:使用API功能創建Map實例。代碼如下,直接放進mounted就可以,這時我們的地圖就可以顯示了:
            // 百度地圖API功能
            var map = new BMap.Map("map");    // 創建Map實例
            map.centerAndZoom(new BMap.Point(121.551257,38.890002), 11);  // 初始化地圖,設置中心點坐標和地圖級別
            //添加地圖類型控件
            map.addControl(new BMap.MapTypeControl({
                mapTypes:[
                    BMAP_NORMAL_MAP,
                    BMAP_HYBRID_MAP
                ]}));
            map.setCurrentCity("大連");          // 設置地圖顯示的城市 此項是必須設置的
            map.enableScrollWheelZoom(true);     //開啟鼠標滾輪縮放

給地圖添加標注

更多詳細請見 百度地圖API
代碼如下,添加的標注樣式是
marker.setTitle的作用是添加標簽,樣式如下:

                    var point = new BMap.Point(location1,location2);         
                    map.centerAndZoom(point, 10);
                    var marker = new BMap.Marker(point);        // 創建標注
                    marker.setTitle("我是標題");
                    map.addOverlay(marker);                     // 將標注添加到地圖中
                    // 設置標注動畫效果。如果參數為null,則取消動畫效果。該方法需要在addOverlay方法后設置
                    marker.setAnimation(Animation);

最后我使用JSON解析后的坐標地址添加完的標注:

去掉百度地圖的Logo

百度地圖的Logo是使用css樣式放上去的,我們可以使用css樣式覆蓋掉:

        .BMap_cpyCtrl {
            display: none;
        }
        .anchorBL {
            display: none;
        }

申請地圖密鑰(訪問應用AK)

創建應用實例流程圖示:
申請密鑰頁面:(點這個藍色的創建應用)

填寫應用名稱:(自己的項目名稱)

選擇自己的應用類型:(服務端、微信小程序、Android、iOS、瀏覽器端五選一)
我自己是網頁端的項目,就選擇網頁端了。

選擇啟用的服務:
選擇應用類型之后,下面的啟用服務列表會根據你的選擇變化,根據你的需求選擇啟用服務。

填寫Referer白名單:
根據輸入框下面的提示,輸入您的域名。如果不知道怎么填的話,可以直接打一個英文半角星號上去。

創建成功之后就會跳到原來的應用列表頁面,列表中的訪問應用AK就是你這個項目申請的地圖密鑰。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM