特定のポイント(経度、緯度)があり、指定されたポイントの半径5マイルなど、すべてのポイント範囲を取得したいですか?
1 に答える
ここで推測しているだけですが、別のアプローチを見つける必要があると思います。FoursquareやGoogleマップなど、現在地から半径5マイル以内の場所を検索しようとしている場合、これらのサービスではその半径内のすべてのポイントが計算されないことがわかります。次に、それらをそれらのポイントの場所に一致させます。
おそらく、このようなことを行うコードの背後にいくつかの賢い人がいるでしょう...
- ユーザーの現在地を取得する
- 現在の場所が存在する郊外を検索します(または失敗した場合は、都市を検索します)。また、この場所に隣接するすべての周辺の郊外を検索します。
- それらの郊外内のすべての場所を見つけて、それらが現在のユーザーの場所からどれだけ離れているかを計算します
この種のプロセスは、これらのサービスで採用できる可能性のある方法の1つです。これは、場所の比較の小さなサブセットを扱います。これは、比較的迅速に実行できます。また、マップ上の場所には通常、郊外/都市が関連付けられているため、郊外を含むインデックスがあるため、場所のデータベース検索はかなり高速になります。
あなたがこのようなことをすることを目的としているなら、私は単にあなたの橈骨のすべてを計算しようとするのではなく、ポイントを比較する別の方法を見つけようとします。
そしてもちろん、これをより適切に計算するための特定のアルゴリズムもたくさんありますが、それは私の専門分野ではなく、別のフォーラムにより適しています。これが最善の方法であると言っているわけではありませんが、既知の位置データに依存する他の方法がたくさんあり、提案された要件よりも迅速かつスマートになります。