GeoDjango:在地理DWithin查询中只允许使用度数单位的数值

时间:2014-04-30 07:49:02

标签: django gis geospatial geodjango

我试图在某一点5000米范围内获得N分。我的数据库是Postgres(PostGis)。我有这样的模型:

class Theatre(models.Model):
    geom = models.PointField(srid=4326, blank=True, null=True, default=None)
    objects = models.GeoManager()

然后我在django shell中运行了几行:

  
    
      

Theatre.objects.filter(geom__dwithin =(GEOSGeometry('POINT(30.111199 -97.309990)'),D(m = 5000)))

    
  

我收到错误:

ValueError: Only numeric values of degree units are allowed on geographic DWithin queries.

我在here中找到了该文档,它说的是计算几何距离..

请帮忙..非常感谢!!

1 个答案:

答案 0 :(得分:-1)

看起来POINT WKT中的x和y值是相反的。

尝试:

Theatre.objects.filter(geom__dwithin=(GEOSGeometry('POINT(-97.309990 30.111199)'), D(m=5000)))