0

私は、文字列の形式のアドレスとして場所のデータベースを持っている1つのアプリケーションを開発しています。ジオコーダーを使用して、同じ緯度/経度を取得しています。私も現在の場所でやりました。今、その現在の場所から、データベースから4〜5か所近くに行きたいと思います。これについてのもう1つのことは、最初にListViewに最も近い4〜5の場所の住所を表示したいということです。いずれかをクリックすると、現在地から目的地までの距離とその経路を示す地図が表示されます。

このアプリケーションのアイデアは、Androidマーケットで「Places」として有名なすでに開発されたアプリケーションから得ました。

私は私のアプリケーションに非常に近いですが、いくつかの小さなことにこだわっています。

ありがとうKeyur

4

1 に答える 1

2

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で線を描画する方法については、これを参照してください。

あなたはこれにまったく慣れていないので、赤ちゃんの一歩を踏み出してください。

于 2011-11-04T04:50:00.990 に答える