0

私のマーカーデータをSQLiteデータベースから取得しています。そして、私は配列リストにこのデータを保存しました。Googleマップv2で地図マーカーIDを取得する

私の活動では、2つのマークの間のルートも作成します。 (それらのマーカーの1つは、ユーザーの現在の場所です)そしてユーザーがランダムマーカーをクリックすると、このマーカーとユーザーの現在の位置の間のルートが表示されます。 しかし、私は問題があります。私はどのマーカーがクリックされたかをどのように知っているのですか?何か案が?

注:私は私のデータベースscreenshot

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; 
} 
+0

マーカーを追加情報でマッピングするために 'HashMap'を使うことができます:http://stackoverflow.com/a/31272741/1584654 – GVillani82

+0

しかし、このリンクには情報ウィンドウのクリックイベントが含まれています。私はマーカーのクリックに問題があります。そのクリック機能はかなり異なっています。 –

+0

はい、私は同じロジックを適用し、マーカーをマップに追加するときに 'HashMap'を使い、' onMarkerClick'でマーカーに関連するデータを取得するように提案しました。 'map.get(marker ) '。 – GVillani82

答えて

1

マーカーを追加する場合は、必ずmarker.setTagを(使用することができますID)をクリックし、マーカーをクリックすると、marker.getTag()を試して、どのマーカーがクリックされたかを調べます。

+0

私はそれを試してみましょう、結果を知らせるでしょう。ありがとうございます。 –

+0

さて、私のコードには ".to()"関数があります。この関数はLatLngデータ型を受け入れています。私は、どのマーカーがクリックされたかを取得してpositonにする必要があるということです。 –

+0

これらのマーカーはどこから入手できますか?あなたのデータの出所は?あなたのソースにはユニークなものが含まれていますか?はいの場合は、そのIDをタグとして設定し、マーカーがクリックされたら、タグをチェックして、それがどのマーカーであるかを調べます。これは意味があると思っています –

関連する問題