百度地图 js api 实现 line 居中显示
项目中有个需求需要在百度地图的中心显示画的线,以前用过mapPanto这个方法,传入坐标就可以将地图平移到这个坐标,不过不知道如何获取线的中心点,看了别人的代码,有以下两个函数可以实现这个功能
getbounds 返回地图可视区域,以地理坐标表示。 通过这个方法可以获取 line的四个角点坐标
setViewport(view:Array<Point>|Viewport[, viewportOptions: ViewportOptions]) 根据提供的地理区域或坐标设置地图视野,调整后的视野会保证包含提供的地理区域或坐标。(自 1.1 新增)
实现的思路如下 line的范围 ,用setViewport进行校正
bounds = this.polygonsArray[0].getBounds();
var boundsLB = bounds.getSouthWest();
var boundsRT = bounds.getNorthEast();
//对象的宽高
var geomW = boundsRT.lng - boundsLB.lng;
var geomH = boundsRT.lat - boundsLB.lat;
//左下
var lngLB = boundsLB.lng - geomW;
var latLB = boundsLB.lat - geomH;
//右上
var lngRT = boundsRT.lng + geomW;
var latRT = boundsRT.lat + geomH;
var viewport = [
new BMap.Point(lngLB,latLB),
new BMap.Point(lngRT,latRT)
];
this.map.setViewport(viewport);