// 将地图相关的变量和函数提升到全局作用域 let map = null; let marker = null; let infoWindow = null; // 地图数据配置 const mapData = { address: { zh: '广东省深圳市南山区高新中三道2号软件园一期7栋303室', en: '' }, companyName: { zh: '深圳驭鑫科技有限公司', en: '' }, phone:{ zh: '13420976989', en: '+86 13420976989' }, contactInfo: { zh: { address: '地址', phone: '电话', email: '邮箱' }, en: { address: 'Address', phone: 'Phone', email: 'Email' } } }; // 创建信息窗体内容 function createInfoWindowContent(lang) { return `

${mapData.companyName[lang]}

${mapData.contactInfo[lang].address}:${mapData.address[lang]}

${mapData.contactInfo[lang].email}:zmz@yxsilicon.com

`; } // 更新地图信息 function updateMapInfo(lang) { if (marker && infoWindow) { // 更新标记标题 marker.setTitle(mapData.companyName[lang]); // 更新信息窗体内容 infoWindow.setContent(createInfoWindowContent(lang)); // 如果信息窗体是打开状态,重新打开以更新内容 if (infoWindow.getIsOpen()) { infoWindow.open(map, marker.getPosition()); } } } // 初始化地图 function initAMap() { try { // 获取当前语言 const currentLang = window.currentLang || localStorage.getItem('siteLang') || "zh"; // 先加载所需插件 AMap.plugin(['AMap.Geocoder', 'AMap.ToolBar', 'AMap.Scale'], function() { const geocoder = new AMap.Geocoder({ city: "深圳", radius: 1000 }); geocoder.getLocation(mapData.address.zh, function(status, result) { if (status === 'complete' && result.info === 'OK') { const lnglat = result.geocodes[0].location; // 创建地图实例 map = new AMap.Map('mapContainer', { zoom: 16, center: [lnglat.lng, lnglat.lat], viewMode: '3D', resizeEnable: true, pitch: 40, mapStyle: 'amap://styles/normal' }); // 创建标记 marker = new AMap.Marker({ position: [lnglat.lng, lnglat.lat], title: mapData.companyName[currentLang], animation: 'AMAP_ANIMATION_DROP', offset: new AMap.Pixel(-13, -30) }); map.add(marker); // 创建信息窗体 infoWindow = new AMap.InfoWindow({ content: createInfoWindowContent(currentLang), offset: new AMap.Pixel(0, -30), closeWhenClickMap: true }); // 地图加载完成后打开信息窗体 map.on('complete', function() { infoWindow.open(map, [lnglat.lng, lnglat.lat]); }); // 点击标记时打开信息窗体 marker.on('click', function() { infoWindow.open(map, marker.getPosition()); }); // 添加控件 map.addControl(new AMap.ToolBar({ position: 'RB' })); map.addControl(new AMap.Scale()); // 确保标记点居中显示 map.setFitView([marker]); // 响应式处理 window.addEventListener('resize', function() { map.resize(); map.setCenter([lnglat.lng, lnglat.lat]); }); } else { console.error('地址解析失败:', result); const mapContainer = document.getElementById('mapContainer'); if (mapContainer) { mapContainer.innerHTML = '
地址定位失败,请刷新重试
'; } } }); }); } catch (error) { console.error('地图初始化失败:', error); const mapContainer = document.getElementById('mapContainer'); if (mapContainer) { mapContainer.innerHTML = '
地图加载失败,请刷新重试
'; } } } // 在文件末尾添加 document.addEventListener('DOMContentLoaded', function() { // 确保地图容器存在 const mapContainer = document.getElementById('mapContainer'); if (mapContainer) { // 初始化地图 initAMap(); } else { console.error('地图容器不存在'); } if (window.location.hash === '#address-li') { const addressLi = document.getElementById('address-li'); if (addressLi) { addressLi.scrollIntoView({ behavior: 'smooth', block: 'start' }); } } });