百度地圖 vue-baidu-map

## 百度地圖 vue-baidu-map

1. 百度示例網(wǎng)址:http://lbsyun.baidu.com/jsdemo.htm#webgl4_0

2. 百度JSAPI網(wǎng)址:http://lbsyun.baidu.com/cms/jsapi/reference/jsapi_webgl_1_0.html

#### 引入使用

```vue

//main.js

import BaiduMap from 'common/components/vue-baidu-map'

Vue.use(BaiduMap, {

? // ak 是在百度地圖開發(fā)者平臺申請的密鑰 詳見 http://lbsyun.baidu.com/apiconsole/key */

? ak: 'CpmeIdqjNe7lNu74ZGEv6UO2IGQrVcqT'

});

//頁面vue

<baidu-map :center="centers" :zoom="zoom"

? ? ? ? ? ? @ready="handler" class="map"

? ? ? ? ? ? v-if="refresh" :ak="ak"

? ? ? ? ? ? />

//centers:視角中心點

//zoom:視角范圍大小

//@ready:地圖加載完成回調(diào)函數(shù)

//class="map": 需要設(shè)置height值

//refresh: 用于強制刷新地圖

//ak:頁面ak,如全局ak已寫终息,則此處可不需要這個屬性

//地圖回調(diào)

? handler({BMap, map}) {

? ? ? ? let vm = this;

? ? ? ? vm.BMap = BMap;

? ? ? ? vm.map = map;

......

// 添加鼠標滾動縮放

? ? ? ? map.enableScrollWheelZoom();

? ? ? ? //添加比例尺控件

? ? ? ? map.addControl(new BMap.ScaleControl());

? ? ? ? //添加地圖類型控件

? ? ? ? map.addControl(new BMap.MapTypeControl());

? ? ? ? //設(shè)置地圖皮膚

? ? ? ? map.setMapStyleV2({styleJson: styleJson});

}

//添加Marker

addMarker(item, index) {

? ? ? ? let vm = this

? ? ? ? let point = item.point ? new vm.BMap.Point(item.point.lng, item.point.lat) : new vm.BMap.Point(item.longitude, item.latitude);

? ? ? ? let marker = new vm.BMap.Marker(point, {

? ? ? ? ? ? icon: new vm.BMap.Icon('圖片路徑', new vm.BMap.Size(50, 50)),

? ? ? ? ? ? offset: new vm.BMap.Size(10, -16)

? ? ? ? ? })

? ? ? ? vm.addLabel(marker, item); //添加label

? ? ? ? vm.map.addOverlay(marker);//掛載標注

},

//添加標注label

? addLabel(markers, item) {

? ? ? ? let vm = this

? ? ? ? let label = new vm.BMap.Label(item['name'], {offset: new vm.BMap.Size(24, -20)})

// label設(shè)置樣式

? ? ? ? ? label.setStyle({

? ? ? ? ? ? color: "black",

? ? ? ? ? ? fontSize: "12px",

? ? ? ? ? ? height: '34px',

? ? ? ? ? ? border: null,

? ? ? ? ? ? padding: '5px',

? ? ? ? ? ? background: `url(${labels})? `

? ? ? ? ? });

? ? ? ? markers.setLabel(label);

},

? //添加標注title

? ? addTitle(markers, point, item) {

? ? ? ? let vm = this

? ? ? ? let opts = {

? ? ? ? ? width: 200,? ? // 信息窗口寬度

? ? ? ? ? height: 100,? ? // 信息窗口高度

? ? ? ? ? title: item.name, // 信息窗口標題

? ? ? ? };

? ? ? ? let sContent = `<h2 style='margin:0 0 5px 0;padding:0.2em 0'>

? ? ? ? ? ? ${item && item.title ? item.title : '標題'}</h2><h5>${item && item.detail ? item.detail : '內(nèi)容'}</h5>`;

? ? ? ? let infoWindow = new vm.BMap.InfoWindow(sContent, opts);? // 創(chuàng)建信息窗口對象

? ? ? ? markers.addEventListener("mouseover", function (e) {

? ? ? ? ? vm.map.openInfoWindow(infoWindow, point); //開啟信息窗口

? ? ? ? });

? ? ? ? markers.addEventListener("mouseout", function (e) {

? ? ? ? ? vm.map.closeInfoWindow(infoWindow, point); //關(guān)閉信息窗口

? ? ? ? });

},

? //添加線路polyline

addPolyline(){

let path = 'M0 0 L-4 2 L0 -2 L4 2 Z';

? ? ? ? let sy = new vm.BMap.Symbol(path, {

? ? ? ? ? fillColor: "#fff",

? ? ? ? ? fillOpacity: 0.6,

? ? ? ? ? scale: 0.8,//圖標縮放大小

? ? ? ? ? strokeColor: "#fff",//設(shè)置矢量圖標的線填充顏色

? ? ? ? ? strokeWeight: 0,//設(shè)置線寬

? ? ? ? });

? ? ? ? let icons = new vm.BMap.IconSequence(sy, '5%', '4%');

let polyline = new vm.BMap.Polyline(res, {

? ? ? ? ? icons: [icons],//添加線路箭頭

? ? ? ? ? strokeColor: vm.searchModel.color,

? ? ? ? ? enableClicking: false,//是否響應(yīng)點擊事件钩杰,默認為true

? ? ? ? ? strokeWeight: '6',//折線的寬度鳍置,以像素為單位

? ? ? ? ? strokeOpacity: 0.5,//折線的透明度钦讳,取值范圍0 - 1

? ? ? ? });

? ? ? ? vm.map.addOverlay(polyline);

? ? ? ? vm.map.setViewport(res)//根據(jù)提供的地理區(qū)域或坐標設(shè)置地圖視野,調(diào)整后的視野會保證包含提供的地 理區(qū)域或坐標

},

//添加路書LuShu

npm i bmaplib.lushu

import LuShu from 'bmaplib.lushu'

addLushu(){

? let myIcon = new vm.BMap.Icon(

? car, new vm.BMap.Size(50, 20), {? ? //小車圖片

? ? ? ? ? imageOffset: new vm.BMap.Size(0, 0),? ? //圖片的偏移量。為了是圖片底部中心對準坐標點。

? ? ? ? });

? ? ? ? ? let lushu = new LuShu(vm.map, ['軌跡集合'], {

? ? ? ? ? ? defaultContent: "",

? ? ? ? ? ? autoView: true, //是否開啟自動視野調(diào)整斟赚,如果開啟那么路書在運動過程中會根據(jù)視野自動調(diào)整

? ? ? ? ? ? icon: myIcon,

? ? ? ? ? ? enableRotation: true, //是否設(shè)置marker隨著道路的走向進行旋轉(zhuǎn)

? ? ? ? ? ? speed: 100,

? ? ? ? ? ? landmarkPois: []

? ? ? ? ? });

? ? ? ? ? lushu.start();

}

? //獲取定位

? getPosition(BMap, map){

new BMap.Geolocation().getCurrentPosition(function (r) {console.log(r)})

}

? //強制刷新地圖

? ? refreshMap() {

? ? ? ? this.refresh = false;

? ? ? ? this.$nextTick(() => {

? ? ? ? ? this.refresh = true

? ? ? ? })

}

```

#### 階段總結(jié)

1. 地圖的各方法單獨抽離,以備使用

2. 地圖要設(shè)置高度差油,不然不顯示

3. 經(jīng)緯度使用時拗军,檢查是否NEW過,否則不顯示

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載蓄喇,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者发侵。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市妆偏,隨后出現(xiàn)的幾起案子刃鳄,更是在濱河造成了極大的恐慌,老刑警劉巖钱骂,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叔锐,死亡現(xiàn)場離奇詭異,居然都是意外死亡见秽,警方通過查閱死者的電腦和手機愉烙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來解取,“玉大人步责,你說我怎么就攤上這事“褂迹” “怎么了勺择?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長伦忠。 經(jīng)常有香客問我省核,道長,這世上最難降的妖魔是什么昆码? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任气忠,我火速辦了婚禮邻储,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘旧噪。我一直安慰自己吨娜,他們只是感情好,可當我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布淘钟。 她就那樣靜靜地躺著宦赠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪米母。 梳的紋絲不亂的頭發(fā)上勾扭,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天,我揣著相機與錄音铁瞒,去河邊找鬼妙色。 笑死,一個胖子當著我的面吹牛慧耍,可吹牛的內(nèi)容都是我干的身辨。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼芍碧,長吁一口氣:“原來是場噩夢啊……” “哼煌珊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起师枣,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤怪瓶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后践美,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體洗贰,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年陨倡,在試婚紗的時候發(fā)現(xiàn)自己被綠了敛滋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡兴革,死狀恐怖绎晃,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情杂曲,我是刑警寧澤庶艾,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站擎勘,受9級特大地震影響咱揍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜棚饵,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一煤裙、第九天 我趴在偏房一處隱蔽的房頂上張望掩完。 院中可真熱鬧,春花似錦硼砰、人聲如沸且蓬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恶阴。三九已至,卻和暖如春遍愿,著一層夾襖步出監(jiān)牢的瞬間存淫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工沼填, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人括授。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓坞笙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親荚虚。 傳聞我的和親對象是個殘疾皇子薛夜,可洞房花燭夜當晚...
    茶點故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容