risposta

3

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) {} 
1

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.

1

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'); 
7

No, ma è possibile simulare l'evento onClick. 2 cose accadono quando si fa clic su un indicatore:

  1. Viene visualizzata la finestra di informazioni per il corrispondente marcatore cliccato.
  2. 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); 
+10

L'icona delle indicazioni stradali dimenticata viene visualizzata. La tua soluzione non funzionerà per questo. –