百度地图SDK - Android所有Marker点显示在屏幕内解决方案
1.地图加载完成回调接口 只会回调一次(适合单次显示全部marker,不适合变化的marker更新)
mBaiduMap!!.setOnMapLoadedCallback {
val builder = LatLngBounds.Builder()
for (latLng in points) {
builder.include(latLng)
}
val mapStatusUpdate = MapStatusUpdateFactory.newLatLngBounds(builder.build())
mBaiduMap!!.setMapStatus(mapStatusUpdate)
val msu = MapStatusUpdateFactory.zoomBy(-0.8f)
mBaiduMap!!.setMapStatus(msu)
}
2.地图渲染完成回调接口 只要重绘就会回调(适合变化的marker更新)
var isMapRenderComplete=false
//设置地图渲染完成回调
mBaiduMap!!.setOnMapRenderCallbadk{
if (!isMapRenderComplete){
isMapRenderComplete=true
val builder = LatLngBounds.Builder()
for (latLng in points) {
builder.include(latLng)
}
val mapStatusUpdate = MapStatusUpdateFactory.newLatLngBounds(builder.build())
mBaiduMap!!.setMapStatus(mapStatusUpdate)
val msu = MapStatusUpdateFactory.zoomBy(-0.8f)
mBaiduMap!!.setMapStatus(msu)
}
}