【发布时间】:2020-02-23 20:08:09
【问题描述】:
我有一个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)
但我似乎没有正确的方法。
请注意,我不想简单地计算与查询相交的区域子集,而是计算它们的确切交集(换句话说,生成的多边形集应该与查询具有完全相同的形状)。
【问题讨论】:
-
嘿@cjauvin,我正在通过我的答案,我想知道,你觉得这个答案有帮助吗?
标签: python django postgresql postgis geodjango