Associare un object con Marker (google map v2)

Nella mia applicazione ho alcuni oggetti che hanno la loro posizione visualizzata sulla mappa utilizzando marcatori. Il problema è che l'unico modo che ho trovato per gestire i clic del marker è

googleMap.setOnMarkerClickListener(new ... { @Override public void onMarkerClick(Marker marker) { // how to get the object associated to marker??? } }) 

In altre parole, ottengo l'object Marker mentre l'unica interface che mi permette è di impostare solo MarkerOptions.

  • Il wifimanager di Android restituisce sempre vero
  • Scorrere il cursore sullo schermo PreferenceScreen
  • Come utilizzare signalr in Android
  • Utilizzo di Service, TimerTask e BroadcastReceiver per verificare vari aggiornamenti
  • Android Retrofit Parametrizzato @Headers
  • Quali sono i vantaggi di CursorLoaders?
  • Qualsiasi modo per associare Marker ad un object?

  • Servlet: java.lang.ClassNotFoundException: org.json.simple.parser.ParseException
  • Sospendi e riprendi la logging audio in Android
  • Android: Come posso disegnare a livello di codice il text sullo schermo screen / lock screen di protezione?
  • Come faccio a submit JSon come BODY in una richiesta POST al server da un'applicazione Android?
  • Salvataggio e recupero di foto e video in Parse (Android)
  • Fragment Callbacks vs EventBus in Android
  • 3 Solutions collect form web for “Associare un object con Marker (google map v2)”

    È ansible associare object arbitrario utilizzando il metodo setTag () di Marker

     Marker amarker = mMap.addMarker(new MarkerOptions().position(lat, lng).title("Hello World")); amarker.setTag(new SomeData()); 

    Per recuperare i dati associati a un marcatore, è sufficiente leggerlo utilizzando il suo getTag () e quindi lanciarlo al suo tipo originale.

     SomeData adata = (SomeData) amarker.getTag(); 

    Maggiori informazioni

    Credo che questo richiamo non sia stato molto approfondito però dalla squadra Android, ma, è quello che abbiamo.

    Ogni volta che si chiama mMap.addMarker(); restituisce l'indicatore generato. È quindi ansible utilizzare una HashMap o un'altra struttura del titolare dei dati per ricordarlo.

     // Create the hash map on the beginning WeakHashMap <Marker, Object> haspMap = new WeakHashMap <Marker, Object>(); // whenever adding your marker Marker m = mMap.addMarker(new MarkerOptions().position(lat, lng).title("Hello World").icon(icon_bmp)); haspMap.put(m, your_data); 

    Un'altra opzione sarebbe quella di creare una mappa le cui chiavi siano marker.getId () e il valore è il nostro object.

    In questo modo, non teneremo un riferimento a un Marker in memory e non dovremmo preoccuparci dei segnalini raccolti di rifiuti.

    Qui potete vedere altre risposte .

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.