私のマーカーデータをSQLiteデータベースから取得しています。そして、私は配列リストにこのデータを保存しました。Googleマップv2で地図マーカーIDを取得する
私の活動では、2つのマークの間のルートも作成します。 (それらのマーカーの1つは、ユーザーの現在の場所です)そしてユーザーがランダムマーカーをクリックすると、このマーカーとユーザーの現在の位置の間のルートが表示されます。 しかし、私は問題があります。私はどのマーカーがクリックされたかをどのように知っているのですか?何か案が?
MapsActivity.java https://github.com/akexorcist/Android-GoogleDirectionLibrary
ルーティングするためにこの作品を使用してい
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;
}
マーカーを追加情報でマッピングするために 'HashMap'を使うことができます:http://stackoverflow.com/a/31272741/1584654 – GVillani82
しかし、このリンクには情報ウィンドウのクリックイベントが含まれています。私はマーカーのクリックに問題があります。そのクリック機能はかなり異なっています。 –
はい、私は同じロジックを適用し、マーカーをマップに追加するときに 'HashMap'を使い、' onMarkerClick'でマーカーに関連するデータを取得するように提案しました。 'map.get(marker ) '。 – GVillani82