Location.distanceTo()を使用して、現在の場所とデータベース内のすべての場所からの距離のリストを取得します。
結果を並べ替え、現在の位置からの距離が最も短い上位 5 つを選択します。アドレスを取得し、エクストラの文字列配列でこのリストを新しいリスト アクティビティに渡します。
私がやりたいのは、distance.To() から取得した 5 つの最も近い場所です。
これらの場所を取得したら、次の形式の文字列で送信できます
String topFive = "lat1,lon1 lat2,lon2 lat3,lon3 ..."
Intent intent = new Intent(getBaseContext(), YourListActivity.class);
intent.putExtra("TOP_FIVE_LOCATIONS", topFive );
startActivity(intent)
の中onCreate()でYourListActivity.java
String topFive = getIntent().getStringExtra("TOP_FIVE_LOCATIONS");
を使用してこの文字列を分割するString.split(" ")と、場所の文字列 [] が得られます。「、」で再度分割し、使用して緯度、経度を解析しますDouble.parseDouble()
ListView次に sについて学習する必要があります。このためのチュートリアルを紹介します。
ListViewアダプタに緯度、経度データを設定するために を作成するListViewと、 はこのアダプタのデータをレンダリングします。
整形式のリストに表示され、リストをクリックすると表示されるメソッド
を使用しsetOnItemClickListener()てアイテム クリック イベントを取得します。前と同様に、文字列座標を使用して次のアクティビティを起動します。これはマップ ビューです。
次に、選択したアイテムのマップと、現在の場所から選択したアイテムまでの距離とパスが表示されます。
MapViewで線を描画する方法については、これを参照してください。
あなたはこれにまったく慣れていないので、赤ちゃんの一歩を踏み出してください。