日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

html引入百度地图报错,vue引入百度地图BMapGL,或者其他个性化地图

發布時間:2025/3/8 vue 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html引入百度地图报错,vue引入百度地图BMapGL,或者其他个性化地图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

3.jpg

vue的百度地圖早就有vue-baidu-map這里就不贅述了,

自己去直接對著API寫就好了,基本上已經滿足絕大多數需求了還簡單方便。

vue-baidu-map 傳送門 https://dafrok.github.io/vue-baidu-map/#/zh/index

這里主要是在vue里面引入BMapGL,或者其他個性化地圖。

另外還有一篇文章是更加去全面的關于 BMapGL + BMapGLLib 引入的: vue引入百度地圖BMapGL,以及輔助工具BMapGLLib 的引入,BMapGL鼠標繪制功能。

因為異步的問題直接index.html引入會報錯,所以采用以下方式

關于地圖異步這個問題這里啰嗦一下(年紀大了就是喜歡啰嗦?):

地圖組件渲染完畢時觸發,返回一個百度地圖的核心類和地圖實例。百度地圖組件是異步加載,請不要嘗試在組件的生命周期中訪問 BMap 核心類和 map 實例,如有需要,請在所需組件的 ready 事件回調函數的參數中獲取。

——【vue-baidu-map,全局組件事件】

地圖沒有生成的時候不要進行任何對地圖的操作。

譬如說你的坐標中心點初始化是要從后臺獲取數據進行初始化定位的。

一定要等到地圖渲染完成以后再進行操作。也就是關于地圖的初始化數據接口的請求要放在地圖ready里面。(這方面出錯容易引起的錯誤例子:一開始地圖空白,刷新一下就好了什么的。。。map報錯。map, BMap,undefined什么的。。。。)

文件源碼地址

文件結構圖解

文件結構圖解.png

在src里面創建一個bmpgl.js

其實建立在哪看你自己的意愿啦。(小聲逼逼)

// bmpgl.js

export function BMPGL(ak) {

return new Promise(function(resolve, reject) {

window.init = function() {

// eslint-disable-next-line

resolve(BMapGL)

}

const script = document.createElement('script')

script.type = 'text/javascript'

script.src = `http://api.map.baidu.com/api?v=1.0&type=webgl&ak=${ak}&callback=init`

script.onerror = reject

document.head.appendChild(script)

})

}

vue頁面里面引入

import { BMPGL } from "@/bmpgl.js"

export default {

name: "home",

data() {

return {

ak: "XXXXXXXXX", // 百度的地圖密鑰

myMap: null

};

},

mounted() {

this.initMap()

},

methods: {

initMap() {

// 傳入密鑰獲取地圖回調。

BMPGL(this.ak).then((BMapGL) => {

// 創建地圖實例

let map = new BMapGL.Map("container");

// 創建點坐標 axios => res 獲取的初始化定位坐標

let point = new BMapGL.Point(114.031761, 22.542826)

// 初始化地圖,設置中心點坐標和地圖級別

map.centerAndZoom(point, 19)

//開啟鼠標滾輪縮放

map.enableScrollWheelZoom(true)

map.setHeading(64.5)

map.setTilt(73)

// 保存數據

// this.myMap = map

})

.catch((err)=>{

console.log(err)

})

},

}

};

.allmap {

width: 100%;

height: 100vh;

position: relative;

z-index: 1;

}

總結

以上是生活随笔為你收集整理的html引入百度地图报错,vue引入百度地图BMapGL,或者其他个性化地图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。