I have a Region
GeoDjango model (deriving from django.contrib.gis.db.models.Model
), with a geom
field, which is a django.contrib.gis.db.models.MultiPolygonField
.
I'd like to compute the intersection of this model (representing a set of polygonal regions stored in PostGIS) with a GeoJSON polygonal "query":
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]]]}'
)
I tried many things:
results = Region.objects.all().intersection(query)
or
from django.contrib.gis.db.models.functions import Intersection
results = Intersection(Region.objects.all(), query)
but it seems I don't have the right approach.
Note that I do not want to simply compute the subset of regions which intersect with the query, but rather their exact intersection (in other words the resulting set of polygons should have the exact same shape as the query).