【问题标题】:Finding models inside a set of Polygons in GeoDjango在 GeoDjango 中的一组多边形中查找模型
【发布时间】:2014-12-10 00:57:47
【问题描述】:

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

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

模型是这样定义的:

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

我有一个基于点的模型,比如这个:

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

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

【问题讨论】:

    标签: python django gis geodjango


    【解决方案1】:

    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)
    

    【讨论】:

    • 不错的方法。我最终使用了 Q 对象,但这更干净
    猜你喜欢
    • 2018-10-21
    • 2016-09-06
    • 1970-01-01
    • 2020-02-23
    • 1970-01-01
    • 1970-01-01
    • 2016-09-07
    • 2015-03-07
    • 1970-01-01
    相关资源
    最近更新 更多