2013-11-27 19 views
5

Desidero sapere se esiste un modo per impostare un riempimento diverso da ciascun sito del dispositivo per i limiti delle mappe di Google.Imposta limiti mappa con riempimento diverso

Perché ho una strega di mpview che corrisponde all'intera attività, ma ho un MapOverlay (un po 'di testo all'interno di un layout linerario con sfondo non transulente) sul 1/3 in basso sullo schermo.

E ora voglio ingrandire usando i limiti mappa. Ma dovrebbe avere più padding dal basso in modo da non ottenere dietro il mio mapOverlay.

Io uso questo codice con l'imbottitura di 120.

final com.google.android.gms.maps.model.LatLngBounds.Builder bounds = new LatLngBounds.Builder(); 
bounds.include(pref.getSavedLatLng()); 
bounds.include(currentLatLng); 
map.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds.build(), 120)); 

C'è un modo di impostare diverse imbottiture, o altra soluzione per questo problema?

Grazie per l'aiuto e mi dispiace per il mio inglese.

+2

https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/GoogleMap#setPadding%28int,%20int,%20int,%20int%29 –

+0

@ MaciejGórski Grazie, funziona – MEX

risposta

17

Questa è una domanda più vecchia e forse il richiedente ha trovato la soluzione, ma qui è per tutti coloro che devono affrontare lo stesso problema in futuro. Impostare l'imbottitura individuo che usa

googleMap.setPadding(left, top, right, bottom)

e quindi utilizzare

googleMap.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds.build(), 0))

Non dimenticare di impostare le imbottiture di nuovo a 0 (o qualsiasi altra cosa erano prima) dopo aver terminato. Perché a differenza di newLatLngBounds(), i paddings impostati da setPadding() sono permanenti.

0

La domanda è vecchia, ma per maggiori informazioni si prega di here.

Se il limite deve essere applicato per un'azione specifica, impostare il riempimento della mappa potrebbe non essere una buona soluzione perché è permanente.

applicare un riempimento di 100 e al di sopra per vedere l'effetto nella mappa. Muggito è un semplice esempio.

final int MAP_BOUND_PADDING = 180; /* In dp */ 
LatLngBounds.Builder builder = new LatLngBounds.Builder(); 
for (LatLng latLng : listLatLng) { //listLatLngis a list of latLng to bound. You can put two if you want. 
    builder.include(latLng); 
} 
LatLngBounds bounds = builder.build(); 
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, MAP_BOUND_PADDING); 
mMap.animateCamera(cu); 
Problemi correlati