2011-08-19 25 views
14

現在、現在知られている場所に最も近い既知の場所を計算するアルゴリズムを開発しようとしています。緯度と経度に基づいて最近傍点を計算するアルゴリズム

私は100の既知の場所(私は長距離と緯度の両方を持っていることを意味する)のリストを持っています。これらの100のうち、私は1つの場所を選び、その場所を選んだ後に、これに最も近い8つの既知の場所を示すリストが必要です。

どのように解決策が考えられますか?

編集

私は距離を計算する方法を捜しているわけではありません。私はどの既知の場所が現在の場所に最も近いかを計算する方法を探しています。

例:

リストには映画館の100の場所が含まれているとします。私は劇場5にいます。リストの他の映画館が近くにあるかどうかを調べたいと思います。距離ではなく、その場所。

+0

ロケーションでは緯度/経度を意味しますか? – ScruffyDuck

答えて

16

Distance Matrix APIがあります。このAPIを使用すると、特定の位置間の距離を計算できます。

あなたはhaversine formula

+0

リンクをありがとうございます、後で便利になるかもしれませんが、今私はどのように距離を計算するのか探していません、私は現在の場所に最も近い場所を見つける方法を探しています。私は映画館「My theater」にいます。他の劇場が近くにあることを知ることに興味があります。彼らとの距離ではなく、その場所。 – diceler

+0

それでもあなたのための解決策です;)あなたは 'マイ・シアター 'ポイントと100の場所のすべてを取得する必要があります。次に、100の距離をすべて計算し、最小の距離を選択します。 最も近い点(最小距離)を見つけるには、すべての距離を知る必要があります。 – hsz

+1

ある時点で、_distance_から現在の場所からxまでの距離がしきい値を超えているかどうかを判断する必要があります... – PLane

1

第一アイデアをあなた自身のことでも、これを行うことができます:あなたの「100の既知の位置は、」ほとんど変わらない場合は、小さなグループに知られている場所を分割し、構造を維持することができます。次に、最も近いグループと遊ぶだけです。

More mathematical approaches here

+0

提案ありがとうございます。私は小さなグループを作って、グループごとに1つの場所を使用して最寄りの最初の場所を計算します。 – netsmertia

1

最近傍探索でkd木アルゴリズムを実装するようにしてください。

関連する問題