高德地图使用setZoomAndCenter并且弹出气泡的位置不正确
问题
在项目中使用高德api,通过点击列表中的定位按钮,地图会缩放到一定级别,并且移动到指定中心点,同时弹出infoWindow的气泡。
但是在页面刚打开时会有个问题:
点击定位按钮时,infoWindow弹出的位置不正确。
解决
修改代码,先让地图切换到指定中心点,再执行infoWindow的弹出操作。
let zoomLevel = 15
let centerLng = Number(extData.lng)
let centerLat = Number(extData.lat)
// 先切换地图位置
map.setZoomAndCenter(zoomLevel, new window.AMap.LngLat(centerLng, centerLat))
// 此处是重点,等地图位置切换后,再弹出气泡
setTimeout(() => {
infoWindow.setContent('气泡内容');
infoWindow.open(map, new window.AMap.LngLat(Number(extData.lng), Number(extData.lat)));
})