在做地图显示轨迹类项目的时候,有时需要自动显示整个轨迹图,如果没有对摄像头的视图作处理,只是画线,那么可能整个轨迹显示不完整。
高德地图API http://lbs.amap.com/api/android-sdk/download/
在高德地图的API中,官方给了我们一个可以显示包括所有给出的点的方法。
CameraUpdateFactory 类中的 newLatLngBounds(LatLngBounds bounds,
int padding)方法。
LatLngBBounds 代表了经纬度划分的一个矩形区域。
padding 设置区域和view之间的空白距离,单位像素。这个值适用于区域的四个边。
只需要在LatLngBounds中动态加入我们要显示的点,再调用设置摄像头位置的方法,就可以显示出完整的轨迹图。
可以通过LatLngBounds.Builder.include(LatLng point).build() 方法传入一个初始位置获得LatLngBounds,之后再调用加入新的点。
mLatLngBounds = mLatLngBounds.including(newLatLng);
再由AMap地图主控制类的moveCamera(CameraUpdate update) 更新摄像头位置
mAMap.moveCamera(CameraUpdateFactory.newLatLngBounds(mLatLngBounds));
设置摄像头视图的方法可以放在onLocationChange()方法中执行,便能显示整个轨迹图。