我想有一個基於半徑的距離搜索。爲此,我想圍繞點對象創建一個緩衝區,以過濾其內部的對象。Geodjango:如何從點緩衝
這是我在它那裏:
>>> lat = 37.7762179974
>>> lon = -122.411562492
>>> from django.contrib.gis.geos import Point
>>> pnt = Point(lat, lon)
>>> buf = pnt.buffer(0.0001)
但我過濾Thing
對象有問題的基礎上,他們是否在緩衝區內:
>>> z = Thing.objects.filter(pnt__intersects=buf)
(我知道,以上是不正確的,但我用它來詳細說明我正在嘗試做什麼。)
我該如何創建在Point
周圍的緩衝區,然後過濾Things
在buffer
裏面?
編輯:models.py
class Thing(models.Model):
lat = models.FloatField()
lon = models.FloatField()
我怎樣才能過濾器的基礎上由這兩個模型場的組合的一個點?
這不能明顯地工作,因爲我沒有一個pnt
場在我的模型:
>>> pnt = Point(lat, lon)
>>> z = Thing.objects.filter(pnt__intersects=buf)
可是我該怎麼做類似的事情?
嗨,@NickB我發佈了一個稍晚(僅3年)的答案。看一看。 –