// 百度地图配置
|
window.BMapConfig = {
|
// 百度地图API Key(使用项目中已有的API Key)
|
key: 'n5z5pKfAnaP3fYMR4RJOAQsR1wQ2avAn',
|
// 地图版本
|
version: '3.0',
|
// 默认中心点(北京)
|
center: [116.404, 39.915],
|
// 默认缩放级别
|
zoom: 15
|
};
|
|
// 动态加载百度地图API
|
(function() {
|
// 检查是否已经加载过百度地图API
|
if (window.BMap) {
|
console.log('百度地图API已存在');
|
return;
|
}
|
|
// 确保DOM已加载完成
|
function loadBMapScript() {
|
// 检查document.head是否存在
|
if (!document.head) {
|
console.error('document.head不存在,延迟加载百度地图API');
|
setTimeout(loadBMapScript, 100);
|
return;
|
}
|
|
// 设置回调函数
|
window.initBMap = function() {
|
console.log('百度地图API加载成功');
|
// 触发自定义事件,通知其他组件地图已加载
|
window.dispatchEvent(new CustomEvent('bmapLoaded'));
|
};
|
|
const script = document.createElement('script');
|
script.type = 'text/javascript';
|
script.src = `https://api.map.baidu.com/api?v=${window.BMapConfig.version}&ak=${window.BMapConfig.key}&callback=initBMap`;
|
script.async = true;
|
script.onload = function() {
|
console.log('百度地图脚本加载完成');
|
};
|
script.onerror = function(error) {
|
console.error('百度地图API加载失败:', error);
|
// 触发错误事件
|
window.dispatchEvent(new CustomEvent('bmapError', { detail: error }));
|
};
|
|
try {
|
document.head.appendChild(script);
|
console.log('百度地图脚本已添加到页面');
|
} catch (error) {
|
console.error('添加百度地图脚本失败:', error);
|
}
|
}
|
|
// 等待DOM加载完成
|
if (document.readyState === 'loading') {
|
document.addEventListener('DOMContentLoaded', loadBMapScript);
|
} else {
|
loadBMapScript();
|
}
|
})();
|