項目上搞了個百度地圖定位,給大家詳細(xì)說說免得踩坑;
new?BMapGL跟new?BMap 類似,前者多了個3D;
這里重點講兩點,也是很重要的兩點:
1.一定要在頁面關(guān)閉或路由跳轉(zhuǎn)的時候清除地圖,this.Map.destroy();,建議地圖初始化后把地圖存在全局,有利于后面在地圖上操作;
2.一定要在lazyBMapApiLoaderInstance.load()后初始化地圖保證地圖可以渲染出來,不然會有問題
好了上代碼;
首先這個地圖比較消耗渲染時間,所以我們在進入頁面時優(yōu)先先把基本地圖樣式先渲染出來
import?{?lazyBMapApiLoaderInstance?}?from?"vue-bmap-gl";
在mounted里執(zhí)行下面方法,渲染地圖,防止出現(xiàn)未知的錯誤
lazyBMapApiLoaderInstance.load().then(()?=>?{
??????this.Map_init();
????});
初始化完成之后,在操作地圖時直接操作 this.Map就可以了;
// api鏈接?https://mapopen-pub-jsapi.bj.bcebos.com/jsapi/reference/jsapi_webgl_1_0.html#a0b0
function Map_init(){
??let?_this?=?this;
??????//?//?禁止地圖旋轉(zhuǎn)和傾斜
??????var?map?=?new?BMapGL.Map("container",?{
????????enableRotate:?false,
????????enableTilt:?false
??????});?//?創(chuàng)建地圖實例
??????map.centerAndZoom(
????????new?BMapGL.Point(_this.BMapGLPoint.lng,?_this.BMapGLPoint.lat),
????????12
??????);?//?初始化地圖,設(shè)置中心點坐標(biāo)和地圖級別
??????this.Map?=?map;
??????map.setHeading(0);?//設(shè)置地圖旋轉(zhuǎn)角度
??????map.setTilt(40);
??????//?map.NavigationControl3DOptions(40);?//設(shè)置地圖的傾斜角度
??????map.setDefaultCursor("crosshair");?//設(shè)置地圖默認(rèn)的鼠標(biāo)指針樣式
??????map.disableDoubleClickZoom();?//禁用雙擊放大
??????map.disableDragging();?//禁用地圖拖拽
??????map.setDefaultCursor("default");
?????map.setTilt(40);?//地圖偏移后,視角偏移40度
};