È possibile eseguire questa operazione utilizzando lo MapController di MapView. Ottieni il MapController usando MapView.getController(), quindi puoi provare a impostare lo zoom corretto usando MapController.zoomToSpan(). Tendo anche a usare ItemLoSlayE getLatSpanE6() e getLonSpanE6() per renderlo più semplice. Un esempio:
MapView map = (MapView) findViewById(R.id.Map);
MapController mc = map.getController();
mc.zoomToSpan(overlay.getLatSpanE6(), overlay.getLonSpanE6());
È importante notare loro avvertimento:
Poiché lo zoom può raggiungere solo livelli discreti, e poiché il rapporto aspetto della mappa non può corrispondere il rapporto dato , la qualità dell'allacciamento può variare. L'unica cosa che è la garanzia è che, dopo lo zoom, a almeno una delle nuove latitudini o la nuova longitudine si troverà entro un fattore di 2 dal parametro corrispondente.
Modifica: Per ottenere anche la mappa per lo zoom sulla posizione corretta, è necessario utilizzare MapController.setCenter().
fonte
2010-04-19 14:17:24
in questo caso la mappa si ingrandisce in una posizione casuale, non è vero? – poeschlorn
Entrambi i punti saranno sempre visibili utilizzando questo metodo. Tuttavia, più i punti sono l'uno dall'altro, meno accurato diventa questo metodo. –
@poeschlorn: corretto, devi anche usare setCenter(), mi dispiace. –