0

Je reçois mes données de marqueur de ma base de données SQLite. Et j'ai stocké ces données dans la liste de tableau.Obtenir un identifiant de marqueur de carte dans Google Maps v2

Dans mon activité, je crée aussi une route entre 2 markes. (Un de ces marqueurs est l'emplacement actuel de l'utilisateur) Et l'utilisateur clique sur un marqueur aléatoire, il montre la route entre ce marqueur et l'emplacement actuel de l'utilisateur. Mais j'ai un problème. Parce que je ne sais pas comment savoir quel marqueur a été cliqué? Une idée?

Note: J'utilise ce travail pour le routage https://github.com/akexorcist/Android-GoogleDirectionLibrary

Ma base de données screenshot

MapsActivity.java

SQLiteDatabase db=dbHelper.getReadableDatabase(); 
     String[] getColumnName={"bakim_enlem,bakim_boylam,bakim_title"}; 
     Cursor imlec=db.query("bakim_yerleri", getColumnName, null, null, null, null, null); 

     while(imlec.moveToNext()) 
     { 
      mMap.addMarker(new MarkerOptions().position(new LatLng 
        (imlec.getDouble(imlec.getColumnIndex("bakim_enlem")),imlec.getDouble(imlec.getColumnIndex("bakim_boylam")))) 
        .title(imlec.getString(imlec.getColumnIndex("bakim_title"))). 
        icon(BitmapDescriptorFactory.fromResource(R.drawable.mapmarker))); 

     } 


     } 



    //route code 
@Override 
public boolean onMarkerClick(final Marker marker) 
{ 
    //in default, you can write here and down there-> LatLng marker1 
    if (marker.equals(**?**)) 
    { 
     CoordinatorLayout rootLayout = (CoordinatorLayout) findViewById(R.id.mapCoordinatorLayout); 
     Snackbar.make(rootLayout, "Rota oluşturuluyor...", Snackbar.LENGTH_LONG).show(); 
     GoogleDirection.withServerKey(serverKey) 
       .from(suanKonumumuz) 
       .to(**?**) 
       .transportMode(TransportMode.DRIVING) 
       .execute(this); 
    } 
    return true; 
} 
+0

Vous pouvez utiliser un 'HashMap' pour mapper votre marqueur avec des informations supplémentaires: http://stackoverflow.com/a/31272741/1584654 – GVillani82

+0

Mais ce lien contient l'événement click d'infowindows. J'ai un problème avec le clic du marqueur. Et leurs fonctions de clic sont assez différentes. –

+0

Oui, mais je vous suggère d'appliquer la même logique, en utilisant un 'HashMap' lorsque vous ajoutez le marqueur à la carte, puis dans votre' onMarkerClick' obtenir les données en rapport avec votre marqueur, en utilisant 'map.get (marqueur) '. – GVillani82

Répondre

1

Lorsque vous ajoutez des marqueurs, vous pouvez toujours utiliser marker.setTag (ID) et lorsque l'utilisateur clique sur le marqueur, essayez marker.getTag() pour savoir quel marqueur a été cliqué.

+0

Je vais essayer, vous permettra de connaître le résultat. Merci monsieur. –

+0

Ok, dans mon code il y a la fonction ".to()". Et cette fonction accepte le type de données LatLng. Je veux dire que je dois obtenir quel marqueur a été cliqué et obtenir sa position. –

+0

D'où obtenez-vous ces marqueurs? Quelle est la source de vos données? Votre source contient-elle quelque chose d'unique? Si oui, définissez cet ID comme une étiquette, puis lorsque vous cliquez sur le marqueur, vérifiez l'étiquette et trouvez le marqueur. J'espère que cela a du sens –