引入百度地圖的兩種方式:1. html文件中直接script標(biāo)簽引入? 2. 異步加載
在實例工作中我沒不想全局引入,通過動態(tài)的script動態(tài)引入:
有人說是因為:此時頁面的dom已經(jīng)全部加載完了蠢挡,關(guān)閉了加載通道,document.write不能異步了化撕,所以加載不上去
參考文檔:https://lbsyun.baidu.com/index.php?title=jspopularGL/guide/usage
我們發(fā)現(xiàn)異步加載時帶了一個callback參數(shù)几晤,當(dāng)腳本加載完成后callback函數(shù)會被立刻調(diào)用,所以我們就可以這樣處理:
? window.onBMapCallback = function() {
var map = new BMapGL.Map('container', {
? ? ? ? restrictCenter: false
? ? });
? ? var point = new BMapGL.Point(118.6614, 36.2190);
? ? map.centerAndZoom(point, 8);
}
function?LoadBaiduMapScript(){
let scriptNode = document.createElement("script");
scriptNode.type = "text/javascript";
scriptNode.src = "https://api.map.baidu.com/api?type=webgl&v=1.0&ak=你的密鑰&callback1=onBMapCallback";
document.body.appendChild(scriptNode);
}
LoadBaiduMapScript()