Python 在django中获得距离而不使用geoDjango后端(PostGIS等…)
我不想经历安装PostGIS的痛苦,所以我可以使用Python 在django中获得距离而不使用geoDjango后端(PostGIS等…),python,django,gis,geodjango,geos,Python,Django,Gis,Geodjango,Geos,我不想经历安装PostGIS的痛苦,所以我可以使用django.contrib.gis从原点按距离排序位置吗 models.py from django.contrib.gis.geos import Point class Place(models.Model): name = models.CharField(max_length=50) lat = models.FloatField() lng = models.FloatField() def poi
django.contrib.gis
从原点按距离排序位置吗
models.py
from django.contrib.gis.geos import Point
class Place(models.Model):
name = models.CharField(max_length=50)
lat = models.FloatField()
lng = models.FloatField()
def point(self):
return Point(self.lat,self.lng)
views.py
origin = Point(lookup_lat,lookup_lng)
places = Place.objects.filter(point__distance_lte=(origin, D(mi=10))).distance(origin).order_by('distance')[:20]
我尝试过这个方法,但我发现
无法将关键字“point”解析到字段中。
安装程序包libgeos dev
可以解决某些情况下的此错误。即使只是一个Place.objects.filter(point\u distance\u lte=(origin,D(mi=10))
也无法工作:(.我不认为它喜欢点
,因为它的功能与问题中的功能相同,最后在lat上使用了\uuu gt
&\uu lt
,而在我的db中使用lng(即获取框中的所有位置)