在GeoDjango中查找一组多边形内的模型

时间:2014-12-10 00:57:48

标签: python django gis geodjango

我有一堆基于多边形的区域:

regions = Region.objects.filter(criteria=criteria)

模型定义如下:

class Region(models.Model):
    poly = models.PolygonField()

我有一个基于点的模型,就像这个:

class Example(models.Model):
    point = models.PointField()

有没有办法让所有Example的实例都在查询集中的任何多边形内? 我在文档中找不到与此相关的任何信息..提前致谢!

1 个答案:

答案 0 :(得分:4)

models.py:

from django.contrib.gis import models

class Example(models.Model):
    point = models.PointField()
    objects = models.GeoManager()

您在所有这些区域中构建多面体,并询问该多面体内的示例

from django.contrib.gis.geos import MultiPolygon

list_poly = [reg.poly for reg in Region.objects.filter(criteria=criteria)]
multipolygon = MultiPolygon(list_poly)
list_examples = Example.objects.filter(point__within=multipolygon)