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
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;
}
Vous pouvez utiliser un 'HashMap' pour mapper votre marqueur avec des informations supplémentaires: http://stackoverflow.com/a/31272741/1584654 – GVillani82
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. –
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