2011-12-08 4 views
2

私は、位置属性(PointFields)を持つオブジェクトの束を持っています。私は2つの特別な場所を持っています。そして、私は、それぞれのオブジェクトがどれに近いか、どれくらいの場所にいるのかを知りたいと思います。 。それは私のような何かをしたいと思い、次のとおりです。それにもかかわらず、いくつかのポイント間の最小距離を見つける、または余分な選択でクエリセットをマージする

q0 = q.distance(p0).extra(select={'dist_from': p0}) 
q1 = q.distance(p1).extra(select={'dist_from': p1}) 
qq = take_obj_with_min_distance(q0, q1) 

を(実際のクエリは、bboverlapsとlocation__distance_ltでいくつかのものを行いますおそらく属性を複数の場所で二つ以上の特別な場所、そしておそらくオブジェクトを伴います私は上記の解決法が他のすべてのものを扱うと思います)。

その後、qqはqと同じ要素を持つべきですが、各要素にdistance属性とdist_from属性があります。distance属性は最小値ですp0からの距離とp1からの距離dist_fromは、最小値を達成する点です。

これを行うことはできますか?それは子供や他の生き物のために健康ですか?

私はクエリをマージし、リストを使ってこのことを行うことを検討しましたが、余分な選択値(距離クエリによって導入されたものなど)でクエリをマージすることはできません。また、qqを後でフィルタリングしたいと思うでしょう。

+0

投稿データベースを使用してクエリを実行していますか? – RickyA

答えて

0

このページでは、あなたの言語の束に必要なコードを提供します:http://www.codecodex.com/wiki/Calculate_Distance_Between_Two_Points_on_a_Globe

あなたはあまりにも多くのオブジェクトを持っていない場合は、Pythonでそれを行うことを望むかもしれませんが、あなたはデータベースを照会好むならば、それはかもしれませんSQLでプロシージャまたは関数を準備するのが最善の方法です。

関連する問題