私は、ユーザーが現在の場所に応じて最も近い場所を見つけたり、場所をデータベースに追加したりできる Android アプリケーションを構築しています。データベースで経度と緯度を使用する必要があることは理解していますが、現在の場所をデータベース内の場所と比較する方法が本当にわかりません。データベース全体を体系的に調べて、各ジオポイントを抽出し、それをユーザーの場所と比較する必要がある可能性があるため、どのように検索するのでしょうか?
例: ユーザーがロンドンの 10 か所と世界中の 1000 か所の場所に入力し、ロンドンにいるユーザーがアプリケーションを使用していて、現在の場所に基づいて自分に最も近い場所を見つけたいとします。データベース内の何千もの場所の中からこれらの 10 の場所を検索するにはどうすればよいでしょうか? distanceTo() を 1000 回実行する必要はありません。
アドバイス、ガイド、チュートリアル、リファレンスは素晴らしいでしょう。
前もって感謝します。
編集:
これがこれまでの私の考えです。
検索された場所、現在の場所、またはユーザーが画面上でタップした場所の経度と緯度を取得します。
上記の場所の経度/緯度を使用して、getFromLocation メソッドを使用してリバース ジオコーディングから場所の説明を取得します。
場所の説明を使用して、住所文字列に基づいてデータベースを検索します。
これは私が今持っているものですが、これも信頼できないようです。場所の経度/緯度を指定してデータベースにクエリを実行し、最も近いスポットの完全なリストを返す簡単な方法が必要です。