GEODjango:选择给定多边形的POST请求中包含的所有对象

时间:2013-12-18 16:02:04

标签: django geodjango point-in-polygon

我的请求具有形成多边形的坐标。

plist = []
...
plist.append(fromstr('POINT(%s)' %(value)))
...
p = Polygon(plist)

使用GeoDjango我想从包含在多边形中的表中选择所有对象(places.objects.all())。

浏览文档我正在寻找如何验证单个点是否相交或包含在多边形(p.mpoly.contains(pnt))中的方法,而不是用于对点集合起作用的内容

有没有办法实现这个目标,还是应该使用存储过程呢?

1 个答案:

答案 0 :(得分:3)

我认为您正在寻找GeoQuerySet within过滤器:

places.objects.filter(geom__within=p)

假设geom是您的几何列。

或者,您可以使用contained,但这只考虑多边形边界框,根据您的使用情况,这可能就足够了。