1

私は、ユーザーが現在の場所に応じて最も近い場所を見つけたり、場所をデータベースに追加したりできる Android アプリケーションを構築しています。データベースで経度と緯度を使用する必要があることは理解していますが、現在の場所をデータベース内の場所と比較する方法が本当にわかりません。データベース全体を体系的に調べて、各ジオポイントを抽出し、それをユーザーの場所と比較する必要がある可能性があるため、どのように検索するのでしょうか?

例: ユーザーがロンドンの 10 か所と世界中の 1000 か所の場所に入力し、ロンドンにいるユーザーがアプリケーションを使用していて、現在の場所に基づいて自分に最も近い場所を見つけたいとします。データベース内の何千もの場所の中からこれらの 10 の場所を検索するにはどうすればよいでしょうか? distanceTo() を 1000 回実行する必要はありません。

アドバイス、ガイド、チュートリアル、リファレンスは素晴らしいでしょう。

前もって感謝します。

編集:

これがこれまでの私の考えです。

検索された場所、現在の場所、またはユーザーが画面上でタップした場所の経度と緯度を取得します。

上記の場所の経度/緯度を使用して、getFromLocation メソッドを使用してリバース ジオコーディングから場所の説明を取得します。

場所の説明を使用して、住所文字列に基づいてデータベースを検索します。

これは私が今持っているものですが、これも信頼できないようです。場所の経度/緯度を指定してデータベースにクエリを実行し、最も近いスポットの完全なリストを返す簡単な方法が必要です。

4

2 に答える 2

2

緯度と経度を使用している場合、これは非常に簡単なはずです。個人の座標がおよそ北緯 49 度、東経 2 度であるとしましょう。

緯度/経度が 1 平方度のすべての場所を検索するには、次の基準を満たすすべての場所を選択します。

  • 緯度 >= 48°N かつ <= 50°N

.. と ..

  • 経度 >= 1°E および <= 3°E
于 2013-02-12T16:02:10.390 に答える