动态缩放Google Maps API v2 Android

时间:2015-04-29 08:50:32

标签: android google-maps zoom

在Google Maps API v2中,方法animateCamera用于定义要查看的缩放级别。例如,

googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat1, lng1), 12));

此处,缩放级别固定为12.如何确保此处修复的缩放值允许用户沿路径查看源和目标点,而无需手动缩放。 / p>

我知道使用试错法和一些if-else条件,可以确定这些值。但有更复杂的方法吗?

2 个答案:

答案 0 :(得分:7)

你可以像这样使用LatLngBounds:

LatLngBounds.Builder builder = new LatLngBounds.Builder();
builder.include(startPoint);
builder.include(endPoint);
LatLngBounds bound = builder.build();
map.animateCamera(CameraUpdateFactory.newLatLngBounds(bound, 25), 1000, null);

startPoint和endPoint是LatLng对象。

答案 1 :(得分:1)

Rajat的答案是正确的,但你需要等待地图加载,否则你可以得到错误“地图大小为0”。

googleMap.setOnMapLoadedCallback(this);

...

@Override
public void onMapLoaded() {
    if (googleMap != null) {
        LatLngBounds.Builder builder = new LatLngBounds.Builder();
        builder.include(startPoint);
        builder.include(endPoint);
        LatLngBounds bound = builder.build();

        googleMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bound, 40));
    }
}