Sto sviluppando un'applicazione per Android che dovrebbe utilizzare Google Maps v2. Ora sono bloccato a trovare quando il livello di zoom della mappa è cambiato. Qualcuno può aiutarmi? Grazie in anticipo.listener di livello di zoom in google maps v2 in android
risposta
Creare un'implementazione of OnCameraChangeListener
e passarne un'istanza to setOnCameraChangeListener()
of your GoogleMap
. Il tuo ascoltatore dovrebbe essere chiamato con onCameraChange()
ogni volta che l'utente cambia lo zoom, il centro o l'inclinazione. Scopri il nuovo livello di zoom dall'oggetto CameraPosition
che sei passato.
Se siete alla ricerca di come determinare se il livello di zoom è cambiato dal livello di zoom precedente, ecco cosa mi suggeriscono:
definire una variabile di istanza per tenere traccia del livello di zoom precedente:
//Initialize to a non-valid zoom value
private float previousZoomLevel = -1.0f;
Inoltre, definire una variabile di istanza per farvi sapere se la mappa è lo zoom:
private boolean isZooming = false;
Quando si configura esempio il vostro GoogleMap, dargli un OnCameraC hangeListener ...
//mMap is an instance of GoogleMap
mMap.setOnCameraChangeListener(getCameraChangeListener());
Ora, definire l'OnCameraChangeListener che determinerà se il livello di zoom è cambiato:
public OnCameraChangeListener getCameraChangeListener()
{
return new OnCameraChangeListener()
{
@Override
public void onCameraChange(CameraPosition position)
{
Log.d("Zoom", "Zoom: " + position.zoom);
if(previousZoomLevel != position.zoom)
{
isZooming = true;
}
previousZoomLevel = position.zoom;
}
};
}
Ora, è possibile controllare il valore di isZooming per sapere se si sta modificando i livelli di zoom .
Assicurarsi di impostare
isZooming = false;
dopo aver completato qualsiasi azione si basa sul fatto se la mappa è lo zoom.
Funziona perfettamente anche come ascoltatore di trascinamento. Esattamente quello che stavo cercando per filtrare i marcatori vista dalla distanza al centro della mappa. Grazie! –
deprecato ora. –
Poiché le risposte precedenti si basano su OnCameraChangeListener
e cioè deprecated, questa risposta è basata sulla telecamera setOnCameraMoveListener
.
In questo esempio, sto cambiando il mio Map Type quando l'utente cambia lo zoom (utilizzando i controlli o le dita e lo zoom). Se la modifica è zoom level superiore a 18.0, il tipo di mappa cambia in MAP_TYPE_HYBRIB
e se scende sotto 18.0, il tipo di mappa cambia in MAP_TYPE_NORMAL
.
googleMap.setOnCameraMoveListener(new GoogleMap.OnCameraMoveListener() {
@Override
public void onCameraMove() {
CameraPosition cameraPosition = googleMap.getCameraPosition();
if(cameraPosition.zoom > 18.0) {
googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
} else {
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
}
}
});
Bello! Molto più pulito di OnCameraChangeListener. Idea interessante per cambiare il tipo di mappa. –
nota: questa richiamata viene attivata più volte per ogni evento di zoom –
@SomeoneSomewhere Sì, lo è. Mentre l'utente sta eseguendo lo zoom, ogni "fase" dello zoom avrà un trigger. Più lento è lo zoom in/out, più volte si attiverà l'ascoltatore. Più veloce è lo zoom avanti/indietro, meno volte si innesca. –
- 1. Google Maps V2 - Android - Ottieni il livello di zoom corrente
- 2. Posizionamento di Google maps v2 comandi di zoom in Android
- 3. Google Maps v2 Imposta il livello di zoom
- 4. Android Google Maps v2 - imposta il livello di zoom per myLocation
- 5. rilevamento Touch polyline in Google Maps Android API v2
- 6. API di Google Maps v2 in Dialog
- 7. Google maps api v2 zoom vicino al marker
- 8. Google Maps API Android v2 Overlay
- 9. Android Google Maps v2 Animazione fotocamera
- 10. Indicatori di centro API V2 per Android Google maps
- 11. Google Maps Android V2 - Schermo vuoto
- 12. Android Google Maps v2, MAP_TYPE_NONE e quadratini neri
- 13. Android Google Maps V2 Posizione utente
- 14. L'indicatore personalizzato di Maps Maps v2 Android ha una posizione errata sullo zoom
- 15. Android di Google Maps API v2 percorso di visualizzazione
- 16. schermata grigia di Google Maps API v2
- 17. Marker bitmap di centraggio (API di Google Maps Android v2)
- 18. Sostituzione per ItemizedOverlay in Google Maps V2 per Android?
- 19. Che cosa corrisponde geopoint in Android Google Maps API V2?
- 20. Bitmap di ridisegno su Google Maps v2 per Android
- 21. Google Maps V2 - Android - Ottenere un elenco di marcatori
- 22. API Android di Google Maps v2 creando una nuova LocationSource
- 23. Eccezione di memoria con android google maps v2
- 24. Disabilita zoom scorrimento in Google Maps iframe
- 25. Android Google Maps in Fragment
- 26. L'API di Google Maps v3 consente valori di zoom maggiori?
- 27. Apertura di InfoWindow automaticamente all'aggiunta dell'indicatore Google Maps v2 Android
- 28. L'API di Google Maps per Android v2 è gratuita?
- 29. Android Maps V2 newLatLngBounds con cuscinetto
- 30. Imposta larghezza di InfoWindow personalizzata in Google Maps API v2
setOnCameraChangeListener è ormai deprecato – Makalele
@CommonsWare cosa se voglio rilevare solo lo zoom onDoubleTap sulla mappa di google ?? –
@NirmalPrajapat: non ne ho idea, mi dispiace. – CommonsWare