2010-04-19 16 views

Respuesta

9

Puede hacerlo utilizando MapController de MapView. Obtiene MapController usando MapView.getController(), luego puede intentar establecer el zoom correcto usando MapController.zoomToSpan(). También tiendo a usar getLatSpanE6() y getLonSpanE6() de ItemizedOverlay para hacer esto más simple. Un ejemplo:

MapView map = (MapView) findViewById(R.id.Map); 
MapController mc = map.getController(); 
mc.zoomToSpan(overlay.getLatSpanE6(), overlay.getLonSpanE6()); 

Es importante tener en cuenta su advertencia:

Debido a que el zoom sólo puede alcanzar niveles discretos, y porque la relación aspecto del mapa puede no coincidir con la relación dada , la calidad del ajuste puede variar. Lo único que garantizamos es que, después del zoom, en al menos uno de la nueva latitud o nueva longitud estará dentro de un factor de 2 en el parámetro correspondiente.

Editar: Para obtener también el mapa para acercar el lugar correcto, debe utilizar MapController.setCenter().

+2

en este caso, el mapa se acercaría a una posición aleatoria, ¿o no? – poeschlorn

+1

Ambos puntos siempre estarán visibles con este método. Sin embargo, cuanto más alejados estén los puntos, menos preciso será este método. –

+0

@poeschlorn: Correcto, también tienes que usar setCenter(), lo siento. –

0

Esta es la forma en que debe hacerse:

private void loadMarkerPositions() { 


    for (Stores store : storeList) { 
     latlong1 = new LatLng(store.getLatitude(), store.getLongtitude()); 
     array.add(latlong1); 
    } 

    List<LatLng> points = array; 

    final LatLngBounds.Builder bc = new LatLngBounds.Builder(); 

     for (LatLng item : points) { 
      bc.include(item); 
     } 

    googleMap.setOnCameraChangeListener(new OnCameraChangeListener() { 

     @Override 
     public void onCameraChange(CameraPosition arg0) { 
      // Move camera. 
      googleMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bc.build(), 30)); 
      // Remove listener to prevent position reset on camera move. 
      googleMap.setOnCameraChangeListener(null); 
     } 
    }); 

} 

Referencia: moveCamera with CameraUpdateFactory.newLatLngBounds crashes

Hay otra manera fácil, puede utilizar este proyecto para llevar a cabo todas las actividades relacionadas con el mapa:

https://github.com/girishnair12345/Google-Maps-V2-library

Cuestiones relacionadas