Zoom para adaptarse a todos los marcadores en el mapa google maps v2

Quiero establecer el nivel de zoom para que se ajuste a todos los marcadores del mapa. He utilizado el siguiente método como se ha dicho por muchas personas. Pero no está funcionando para mí. Está mostrando algún otro punto.

if (positions.size() > 0) { final LatLngBounds.Builder builder = new LatLngBounds.Builder(); for (Marker m : positions) { builder.include(m.getPosition()); } builder.include(positions.get(i).getPosition()); } try { googleMap.setOnCameraChangeListener(new OnCameraChangeListener() { @Override public void onCameraChange(CameraPosition arg0) { googleMap.moveCamera(CameraUpdateFactory.newLatLngBounds( builder.build(), UserDataManager.getInstance().getWidth(), UserDataManager.getInstance().getWidth(),0)); googleMap.setOnCameraChangeListener(null); } }); } catch (IllegalStateException e) { // TODO: handle exception final View mapView = getSupportFragmentManager() .findFragmentById(R.id.map).getView(); if (mapView.getViewTreeObserver().isAlive()) { mapView.getViewTreeObserver().addOnGlobalLayoutListener( new OnGlobalLayoutListener() { // We check which build version we are using. @Override public void onGlobalLayout() { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) { mapView.getViewTreeObserver() .removeGlobalOnLayoutListener( this); } else { mapView.getViewTreeObserver() .removeOnGlobalLayoutListener( this); } googleMap.setOnCameraChangeListener(new OnCameraChangeListener() { @Override public void onCameraChange(CameraPosition arg0) { googleMap.moveCamera(CameraUpdateFactory.newLatLngBounds( builder.build(), UserDataManager.getInstance().getWidth(), UserDataManager.getInstance().getWidth(),0)); googleMap.setOnCameraChangeListener(null); } }); } }); } } } 

2 Solutions collect form web for “Zoom para adaptarse a todos los marcadores en el mapa google maps v2”

Trate de usar esto

 //Calculate the markers to get their position LatLngBounds.Builder b = new LatLngBounds.Builder(); for (Marker m : markers) { b.include(m.getPosition()); } LatLngBounds bounds = b.build(); //Change the padding as per needed CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, 25,25,5); mMap.animateCamera(cu); 

Consulte esta biblioteca de Google Maps v2 que he creado que incluye esta funcionalidad.

 Marker m1,m2, m3, m4 .... ; mapHelper.zoomToFitMarkers(m1,m2, m3, m4 ....); 

EDIT:

Obtener ubicación actual

 LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); //You can use GPS_PROVIDER also locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, new LocationListener() { @Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) { // TODO Auto-generated method stub } @Override public void onProviderDisabled(String provider) { // TODO Auto-generated method stub } @Override public void onLocationChanged(Location location) { // TODO Auto-generated method stub currentLatitude = location.getLatitude(); currentLongitude = location.getLongitude(); //Add your marker here and zoom to fit it //mapHelper.zoomToFitMarkers(m1,m2, m3, m4,mapHelper.addMarker(currentLatitude,currentLongitude,"Current Location");); } }); 
 mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(builder.build(), 15)); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.