GeoDjango:在地理数据查询中,只允许度单位的数值

GeoDjango:在地理数据查询中,只允许度单位的数值,django,gis,geospatial,geodjango,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中运行了几行代码: 剧院。对象。过滤器(geom_uuDwithin

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

class Theatre(models.Model):
    geom = models.PointField(srid=4326, blank=True, null=True, default=None)
    objects = models.GeoManager()
然后我在django shell中运行了几行代码:

剧院。对象。过滤器(geom_uuDwithin=(GEOSGeometry('POINT(30.111199-97.309990)),D(m=5000)))

我得到一个错误:

ValueError: Only numeric values of degree units are allowed on geographic DWithin queries.
我在中找到文件,上面写着计算几何距离


请帮忙。。非常感谢

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

尝试:


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

尝试:


在y our POINT()?@RobertJørgensgaardEngdahl中的两个十进制数之间需要一个逗号,如下所示:
Theatre.objects.filter(geom_udwithin=(GEOSGeometry('POINT(30.111199,-97.309990)),D(m=5000))
?告诉我错误:
GEOSException:检查GEOS C函数“geoswktrader\u read\r”返回的几何体时遇到错误。
谢谢!!好的,显然不是这样的:(在y-our POINT()中的两个十进制数之间需要一个逗号?@RobertJørgensgaardEngdahl如下:
Theatre.objects.filter(geom_udwithin=(GEOSGeometry('POINT(30.111199,-97.309990))
告诉我错误:
GEOSException:检查GEOS C函数返回的几何体时遇到错误“GEOSWKTReader\u read\u r”。
谢谢!!好的,显然不是这样:(
Theatre.objects.filter(geom__dwithin=(GEOSGeometry('POINT(-97.309990 30.111199)'), D(m=5000)))