Vue調(diào)用百度地圖的用法

1,引入百度地圖

import BaiduMap from 'vue-baidu-map'


使用你引入的百度地圖插件(ak是激活碼,這要到百度api進(jìn)行注冊獲取到。)

Vue.use(BaiduMap, {

? ak: ''

})

2,頁面里面調(diào)用百度地圖使用

import {BaiduMap, BmControl, BmView, BmAutoComplete, BmLocalSearch,BmlMarkerClusterer} from 'vue-baidu-map'

components: {

? ? ? BaiduMap,

? ? ? BmView,

? ? ? BmControl,

? ? ? BmAutoComplete,

? ? ? BmLocalSearch,

? ? ? coupleList,

? ? ? BmlMarkerClusterer

? ? },

<template>

????<div id="allmap" ref="allmap"></div>

</template>

// 創(chuàng)建地圖

? ? ? createMap(){

? ? ? ? var map = new BMap.Map("allmap"); //在百度地圖容器中創(chuàng)建一個(gè)地圖

? ? ? ? var point = new BMap.Point(106.778458, 33.646665);//定義一個(gè)中心點(diǎn)坐標(biāo)

? ? ? ? map.centerAndZoom(point,7);//設(shè)定地圖的中心點(diǎn)和坐標(biāo)并將地圖顯示在地圖容器中

? ? ? ? map.enableDragging();//啟用地圖拖拽事件,默認(rèn)啟用(可不寫)

? ? ? ? map.enableScrollWheelZoom();//啟用地圖滾輪放大縮小

? ? ? ? map.enableDoubleClickZoom();//啟用鼠標(biāo)雙擊放大,默認(rèn)啟用(可不寫)

? ? ? ? map.enableKeyboard();//啟用鍵盤上下左右鍵移動地圖

? ? ? ? var top_right_navigation = new BMap.NavigationControl({anchor: BMAP_ANCHOR_BOTTOM_RIGHT, type: BMAP_NAVIGATION_CONTROL_SMALL}); //右上角,僅包含平移和縮放按鈕

? ? ? ? /*縮放控件type有四種類型:

? ? ? ? BMAP_NAVIGATION_CONTROL_SMALL:僅包含平移和縮放按鈕;BMAP_NAVIGATION_CONTROL_PAN:僅包含平移按鈕;BMAP_NAVIGATION_CONTROL_ZOOM:僅包含縮放按鈕*/

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

? ? ? ? map.addControl(top_right_navigation);

? ? ? ? window.map = map;//將map變量存儲在全局

? ? ? },

3,遇到問題報(bào)錯(cuò):Bmap is not defined


mounted () {

? this.init()?.then((BMap) => {

? ? ? ? console.log("加載成功...")

? ? ? ? this.createMap() ; //創(chuàng)建地圖

? ? ? ? // this.setMapEvent();//設(shè)置地圖事件添加控件

? ? ? ? ? this.addMapControl();//獲取地圖的當(dāng)前區(qū)域

? ? ? ? ? this.addMarker() //向地圖中添加marker標(biāo)注

? ? ? })? ?

? },


methods: {

? ? ? init(){

? ? ? ? ? console.log("初始化百度地圖腳本...");

? ? ? ? ? const AK = " ";

? ? ? ? ? const apiVersion = "2.0";

? ? ? ? ? const timestamp = new Date().getTime();

? ? ? ? ? const BMap_URL = "http://api.map.baidu.com/getscript?v="+ apiVersion +"&ak="+ AK +"&services=&t=" + timestamp;

? ? ? ? ? return new Promise((resolve, reject) => {

? ? ? ? ? ? if(typeof BMap !== "undefined") {

? ? ? ? ? ? ? resolve(BMap);

? ? ? ? ? ? ? return true;

? ? ? ? ? ? }

? ? ? ? ? ? // 插入script腳本

? ? ? ? ? ? let scriptNode = document.createElement("script");

? ? ? ? ? ? scriptNode.setAttribute("type", "text/javascript");

? ? ? ? ? ? scriptNode.setAttribute("src", BMap_URL);

? ? ? ? ? ? document.body.appendChild(scriptNode);

? ? ? ? ? ? // 等待頁面加載完畢回調(diào)

? ? ? ? ? ? let timeout = 0;

? ? ? ? ? ? let interval = setInterval(() => {

? ? ? ? ? ? ? // 超時(shí)10秒加載失敗

? ? ? ? ? ? ? if(timeout >= 20) {

? ? ? ? ? ? ? ? reject();

? ? ? ? ? ? ? ? clearInterval(interval);

? ? ? ? ? ? ? ? console.error("百度地圖腳本初始化失敗...");

? ? ? ? ? ? ? }

? ? ? ? ? ? ? // 加載成功

? ? ? ? ? ? ? if(typeof BMap !== "undefined") {

? ? ? ? ? ? ? ? resolve(BMap);

? ? ? ? ? ? ? ? clearInterval(interval);

? ? ? ? ? ? ? ? console.log("百度地圖腳本初始化成功...");

? ? ? ? ? ? ? }

? ? ? ? ? ? ? timeout += 1;

? ? ? ? ? ? }, 500);

? ? ? ? ? });

? ? ? },

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 因項(xiàng)目需要接入百度地圖API,在網(wǎng)頁上實(shí)現(xiàn)搜索任意地點(diǎn)和目的地周邊的配套詳情 步驟詳情: 1、在WebStorm上...
    隱龍閱讀 2,212評論 0 2
  • 1.首先使用百度地圖js API 前, 需要申請應(yīng)用的ak 秘鑰,在官網(wǎng)上自己申請即可;2.普通的 html 文件...
    佐伊zero閱讀 12,240評論 7 3
  • LBS 位置服務(wù) 基于位置的服務(wù),它是通過電信移動運(yùn)營商的無線電通訊網(wǎng)絡(luò)(如GSM網(wǎng)、CDMA網(wǎng))或外部定位方式(...
    景岳閱讀 1,066評論 1 0
  • 每個(gè)人都擁有自己的空間和生活.不同環(huán)境將會有不同的生活,那擁有什么樣的生活才算是充實(shí)的生活呢?我的回答是:職校生...
    MrGao_6561閱讀 701評論 0 1
  • 朋友是雨衣 就算晴天時(shí)想不起 雨季也會陪伴你 同事是戲服 就算臺上穿的再入戲 臺下也要脫下去 情人是絲綢睡衣 就算...
    旖旎i閱讀 332評論 2 19

友情鏈接更多精彩內(nèi)容