我有一个Region
GeoDjango模型(派生自django.contrib.gis.db.models.Model
),其中包含一个geom
字段,该字段是一个django.contrib.gis.db.models.MultiPolygonField
。
我想计算此模型(表示存储在PostGIS中的一组多边形区域)与一个GeoJSON多边形“查询”的交集:
from django.contrib.gis.geos import GEOSGeometry
query = GEOSGeometry(
'{"type":"Polygon","coordinates":[[[-80.983786,43.929011],[-80.511513,43.778458],[-80.291852,44.079184],[-80.775108,44.232127],[-80.983786,43.929011]]]}'
)
我尝试了很多方法:
results = Region.objects.all().intersection(query)
或者
from django.contrib.gis.db.models.functions import Intersection
results = Intersection(Region.objects.all(), query)
但是看起来我没有正确的方法。
请注意,我不想简单地计算与查询相交的区域子集,而是它们的确切交集(换句话说,结果多边形集应具有与查询相同的确切形状)。