谷歌地图 API v2 安卓中的动态缩放



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

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

在这里,缩放级别固定为 12。如何确保此处固定的缩放值将允许用户查看沿路线的源点和目标点,而无需手动缩放

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

你可以像这样使用 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 对象。

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));
    }
}

最新更新