使用script引入方法会出现报错 bMap is undefined
解决办法:
mapLoad = function () {//初始化方法
mapAsny().then(res => {//异步加载百度api
mapcreated()//加载地图初始化方法
})
}
mapAsny =function (resolve,reject) {
const AK = '你的秘钥';
const BMap_URL = "https://api.map.baidu.com/api?v=2.0&ak=" + AK + "&s=1&callback=onBMapCallback";
return new Promise((resolve, reject) => {
// 如果已加载直接返回
if (typeof BMap !== "undefined") {
resolve(BMap);
return true;
}
window.onBMapCallback = function () {
console.log("百度地图脚本初始化成功...");
resolve(BMap);
};
// 插入script脚本
let scriptNode = document.createElement("script");
scriptNode.setAttribute("type", "text/javascript");
scriptNode.setAttribute("src", BMap_URL);
document.body.appendChild(scriptNode);
// 百度地图异步加载回调处理
})
}
mapcreated= function () {//加载地图初始化方法
var arrData = []//你的地图数据
var map = new BMap.Map('divMap');
var point = new BMap.Point(lng,lat)//地图展示的中心点位置
map.centerAndZoom(point, 15);
map.enableScrollWheelZoom(true);
var marker = new BMap.Marker(point);
map.addOverlay(marker);
}