Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
谷歌地图API v2 Android中的动态缩放_Android_Google Maps_Zooming - Fatal编程技术网

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

谷歌地图API v2 Android中的动态缩放,android,google-maps,zooming,Android,Google Maps,Zooming,在Google Maps API v2中,使用方法animateCamera定义查看的缩放级别。比如说, googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat1, lng1), 12)); 这里,缩放级别固定为12。如何确保此处固定的缩放值允许用户查看路线沿线的源点和目标点,而无需手动缩放 我知道使用试错法和一些if-else条件可以确定值。但是有没有一种更复杂的方法可以做到这一点呢 您可以像这样使用L

在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的答案是正确的,但您需要等待map加载,否则可能会出现错误“map size为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));
    }
}