0

在我的应用程序中,我正在使用 google maps v2 api,

我有以下代码,当活动第一次开始时,它会显示整个世界,蓝色大头针显示我的位置。但是,它不会放大到我的直接位置。但是,每当我在一段时间后再次调用此方法时(使用显示我的位置按钮),我都会将其缩放到我想要的级别。

 public void onLocationChanged(Location location)
{
    if(location != null)
    {

        double latitude = location.getLatitude();
        currentLat = location.getLatitude();

        double longitude = location.getLongitude();
        currentLon = location.getLongitude();

        LatLng latLng = new LatLng(latitude, longitude);

        if(googleMap != null)
        {               
                 googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));   
                 googleMap.animateCamera(CameraUpdateFactory.zoomTo(13));

            LatLngBounds bounds = this.googleMap.getProjection().getVisibleRegion().latLngBounds;

            if (!bounds.contains(new LatLng(location.getLatitude(), location.getLongitude())))
            {
                googleMap.animateCamera(CameraUpdateFactory.newLatLng(new LatLng(location.getLatitude(), location.getLongitude())));
            }

        }
    }
4

1 回答 1

1

我猜你在谈论地图视图的相机位置和缩放级别。以下代码应该可以正常工作,前提是您具有正确的纬度和经度,当活动加载时相机应该移动到的位置:

CameraPosition cameraPosition = new CameraPosition.Builder().target(new LatLng(17.385044,78.486671)).zoom(12).build();
googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));

您可以从本教程中学到很多东西:

http://www.androidhive.info/2013/08/android-working-with-google-maps-v2/

于 2013-11-06T15:26:24.890 回答