1.原因分析
百度地图加载时页面标签的宽高都还没有加载完成,地图的标签宽高都是0,
所以地图的中心会移到div的左上角
2 解决办法
推迟初始化地图的时间
<script>
import BMap from 'BMap'
export default {
components: {
},
mounted() {
setTimeout(() => {
this.baiduMap()
}, 100)
},
methods: {
baiduMap() {
let map = new BMap.Map('allmap')
let point = new BMap.Point(116.750036,39.888589) // 创建点坐标
map.centerAndZoom(point, 15) // 初始化地图,设置中心点坐标和地图级别
map.enableScrollWheelZoom(true) //开启鼠标滚轮缩放
map.setMapStyle({ style: 'midnight' }) //地图风格
let icon = new window.BMap.Icon(require('./../../assets/u21.png'), new window.BMap.Size(35, 43), {
anchor: new window.BMap.Size(35, 35)
});
icon.setImageSize(new BMap.Size(30,35));//设置图标大小
let mkr =new window.BMap.Marker(point, {
icon: icon
});
map.addOverlay(mkr);
let loadCount=0;
map.addEventListener("tilesloaded",function(){//mapName是你的地图名称
if(loadCount==1){
map.setCenter(point);//point是设置的中心点
}
loadCount=loadCount+1
});
}
}
}
</script>