百度地图会默认添加一个绝对定位的样式,但是绝对定位是相对于离他最近的position值为relative的容器的,因此只需要给容器添加position:relative属性值即可解决
<div id="echart5" echarts style="height: 100%; width: 100%;position: relative;"></div>
补充一个别的地图超出容器的问题:
1:页面初始化后或者刷新后发现超出容器,可以写一个延时器延时初始化图表,
ngOnInit() {
setTimeout(() => {
this.setMap();
}, 100);
}
2:如果是屏幕改变后图表超出或者不能撑满,可以利用resize()方法
例如在angular中可以用:
import { HostListener } from '@angular/core';
@HostListener('window:resize', ['$event'])
(以下方法在窗口大小改变时自动执行)
onResize(event) {
if (this.chart && this.chart.hasOwnProperty('resize')) {
this.chart.resize();
}
if (this.chart0 && this.chart0.hasOwnProperty('resize')) {
this.chart0.resize();
}
if (this.chart2 && this.chart2.hasOwnProperty('resize')) {
this.chart2.resize();
}
}