现在我正在使用原始SQL来查找距离当前用户500米以内的人。
cursor.execute("SELECT user_id FROM myapp_location WHERE\
GLength(LineStringFromWKB(LineString(asbinary(utm), asbinary(PointFromWKB(point(%s, %s)))))) < %s"\
,(user_utm_easting, user_utm_northing, 500));
在GeoDjango中我该怎么做?在任何地方编写自定义SQL都有点累。
最佳答案
假设你有合适的模型,
from django.contrib.gis.db import models
class User(models.Model):
location = models.PointField()
objects = models.GeoManager()
看起来像是:
User.objects.filter(location__dwithin=(current_user.location, D(m=500)))
但是请注意,MySQL不支持这样的distance lookups。
关于python - 如何在GeoDjango中编写此查询? (这是Django中用于地理计算的库),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2447257/