C'è un modo per chiamare manualmente l'evento Click di un marker specifico (senza toccare fisicamente il marker)?Come attivare l'evento onClick di un indicatore su un Google Maps V2 per Android?
risposta
Prova questo,
Implementare marcatore click ascoltatore dalla classe mappa,
public class MapView extends FragmentActivity implements OnMarkerClickListener{}
avrà la precedenza onMarkerClickEvent come segue,
@Override
public boolean onMarkerClick(final Marker marker) {}
La risposta è no. Non è possibile impostare separatamente onClick
di un indicatore specifico.
Tuttavia, utilizzando Map.setOnMarkerClickListener(_)
è possibile impostare un listener per tutti questi eventi. Dovresti essere in grado di recuperare l'oggetto nel listener chiamato ogni volta che viene fatto clic su un qualsiasi indicatore. Puoi usare qualche identificazione per vedere se questo è il marcatore particolare che desideri e agire di conseguenza. L'identificazione potrebbe essere una delle proprietà specifiche di quel marcatore, title
è la scelta più ovvia. Tuttavia, puoi filtrare i marcatori utilizzando qualsiasi proprietà desiderata.
NO, non è possibile trigerare direttamente un evento click marker (dal codice).
È possibile utilizzare solo mMap.setOnMarkerClickListener(...);
, per gestire l'evento click marcatori.
Ma c'è un'alternativa se si utilizza la mappa in WebView, in modo da poter attivare un evento marcatore click con JavaScript
:
//In V2 version:
GEvent.trigger(markers[i], 'click');
//In V3 version:
google.maps.event.trigger(markers[i], 'click');
No, ma è possibile simulare l'evento onClick. 2 cose accadono quando si fa clic su un indicatore:
- Viene visualizzata la finestra di informazioni per il corrispondente marcatore cliccato.
- La telecamera esegue il panning sul marcatore.
Quanto sopra può essere realizzato con 2 righe di codice:
marker.showInfoWindow();
map.animateCamera(CameraUpdateFactory.newLatLng(marker.getPosition()), 250, null);
L'icona delle indicazioni stradali dimenticata viene visualizzata. La tua soluzione non funzionerà per questo. –
è possibile simulare un marcatore clic. Crea la tua classe MyMarkerManager che si estende dalla classe MarkerManager.
La classe ha una funzione suMarkerClick() che è possibile chiamare manualmente per simulare l'evento.
Per ulteriori dettagli, fare riferimento a questo collegamento. https://github.com/googlemaps/android-maps-utils/blob/master/library/src/com/google/maps/android/MarkerManager.java
Che dire di 'mMap.setOnMarkerClickListener (...);'? – Rami
Rami come si può chiamare quell'ascoltatore al livello di programmazione (senza effettivamente fare clic sul contrassegno) – mustafa