2017-08-05 92 views
-2

たとえば、私は5のオブジェクトと自分自身の位置の6の座標と名前を持っています。いくつかの座標の中で最も近い座標を見つける

Stadium - 41.56569, 60.60677 
Restoraunt - 41.561865, 60.602895 
House - 41.566474, 60.605544 
FishHouse - 41.55561, 60.63101 
Cafe - 41.564171, 60.604020 

私自身の所在地は41.565550, 60.607537です。

私に最も近いものはスタジアムです。41.56569, 60.60677です。

この値は、数式とPythonまたはC#の方法を使用して計算してください。

ありがとうございます。

+0

あなたは、私はそれが本当の問題ではないので、オフトピックとして、この質問を閉じるために投票していKD-ツリーに建物の場所を追加し、最近傍探索 – meowgoesthedog

+0

を行うことができます。 – EJoshuaS

+0

[なぜ誰かが私を助けることができますか?実際の質問ではありませんか?](http://meta.stackoverflow.com/q/284236) – EJoshuaS

答えて

1

あなたはこのようなmin機能を使用できます。

import math 

def nearest_location(locations, my_location): 
    return min(enumerate(locations), key=lambda (_, (x, y)): math.hypot(x - my_location[0], y - my_location[1])) 

locations = [(41.56569, 60.60677), (41.561865, 60.602895), (41.566474, 60.605544), (41.55561, 60.63101), (41.564171, 60.604020)] 
my_location = (41.565550, 60.607537) 

print(nearest_location(locations, my_location)) 

これは(0, (41.56569, 60.60677))(場所の指標、及びその座標)を出力します。

このコードを複数回実行する場合は、クワッドツリーやKDツリーなどの空間データ構造が理にかなっている可能性があります。

+0

ありがとう!このコードをPython 3でどうやって使うことができますか?私はエラーメッセージ**を受け取りました** "SyntaxError:無効な構文" ** ''(_、(x、y)) "' –

+0

私は2日前にPythonでPythonを書いて、それを私に叱ってはいけないと尋ねました。私はこのようなフィールドdefを必要としていることを実感します。def func(_xy): '私を助けることができますか? –

+0

@InsendioFX私は答えを編集しました。それは関数を定義し、 'print'の周りに括弧が付きました –

1

これは、私が始めたように見えるものの基本的な例です。

{ 
private class Location 
{ 
    float x; 
    float y; 
} 

private List<Location> locationlist = new List<Location>(); 
private Location mylocation = new Location(); 

void findclose() 
{ 
    int closestloc = 0; 
    List<float> distances = new List<float>(); 
    int counter = 0; 
    foreach(Location el in locationlist) 
    { 
     float distance =(x2−x1)2 + (y2−y1)2; 
     distances.Add(distance); 
    } 
    float tempfloat = distances[0]; 
    foreach (float el in distances) 
    { 
     if (el < tempfloat) 
     { 
      tempfloat = el; 
      closestloc=counter; 
     } 
     counter++; 
    } 
} 

} 
関連する問題