マイmodels.py
はこのフィールドを持っているユーザーとビジネスモデルを持っていますGeoDjango&SpatiaLite - フィルタリング近くの物体
location = PointField(geography=True)
私はどのアドレスからジオコードサービスを介して(EPSG 4326で)Googleマップの座標を取得していますユーザーが指定します。
次に、上記のフィールドに保存します(EPSG 4326)。
今、私がしたいことは、ユーザの位置に基づいて、(例えば1キロの)指定された半径内のすべてのビジネスオブジェクトを取得することです:
Business.gis.filter(location__distance_lt=(request.user.location, D(km=1)))
しかし、それは動作しません、それはこれが私に与えますエラー:
これを適切に解決する方法を知っている人はいますか?前もって感謝します!
私は、クエリを実行する前に、投影システムへの変換に頼っ。そのように動作しますが、それほど正確ではありませんが、私の場合はそれが問題ではありません。 – MikiSoft
ちょっと@MikiSoft、私は少し遅れた答えを投稿した、見てください。 –
@JohnMoutafisちょっと、私は前に説明した方法でそれをずっと前に解決しましたが、努力に感謝するためにあなたの答えを解決策としてマークしました。 :) – MikiSoft