H5页面引用高德地图JS API,实现点标记且缩放自适应时,当添加了点标记到地图后,调用相关的API欲设置地图中心点和缩放,都会失效,大致代码如下:
var markers = [];
storeList.forEach(item=> {
var marker = new AMap.Marker({
position: item.lnglat,
icon: '/images/icon_marker.svg',
title: item.name
});
markers.push(marker);
});
map.add(markers);
map.setFitView();
if (markers.length === 1) {
// 当长度为1时代码进到了这里,但是调用setZoomAndCenter设置无效
map.setZoomAndCenter(16, markers[0].lnglat, true);
}
但是在地图第一次初始化的时候,显示的是想要的效果,点标记能自适应,如下:
然而在切换城市后(切换城市时我是将地图对象销毁然后重新初始化的),显示的效果就不符合预期了,如下:
比如当只有一个的时候,应该是要将点标记至于地图中心,且将缩放层级调高才对,但是就像上面代码所示,设置无效。
有没有做过类似需求的,这里想要的效果就是:
点标记能自适应全部显示在地图上,并且层级根据点的分布范围自适应
有没有大佬做过的,急急急,谢谢了~
问题已解决:
map.add(markers)
后再调用map.setFitView()
后即可;