// 百度地图配置 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(); } })();