引入百度地图的两种方式:1. html文件中直接script标签引入? 2. 异步加载
在实例工作中我没不想全局引入,通过动态的script动态引入:
有人说是因为:此时页面的dom已经全部加载完了,关闭了加载通道,document.write不能异步了,所以加载不上去
参考文档:https://lbsyun.baidu.com/index.php?title=jspopularGL/guide/usage
我们发现异步加载时带了一个callback参数,当脚本加载完成后callback函数会被立刻调用,所以我们就可以这样处理:
? 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()