Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于另一个几何体使用geodjango切片几何体_Django_Geodjango - Fatal编程技术网

基于另一个几何体使用geodjango切片几何体

基于另一个几何体使用geodjango切片几何体,django,geodjango,Django,Geodjango,我已经建立了一个PostgreSQL数据库,正在使用Geodjango与保存在此数据库中的几何体进行交互。我的用例如下所示: sliced_geometry = parks.intersection(region_boundaries) 在数据库中,我有一个复杂的、巨大的多多边形,包含全国所有的公园这包含在单个几何体字段中 我有另一个记录,其中包含我所在区域的边界 我想做的是以某种方式截断/切片多多边形,以便它删除那些不在边界内的多边形 示例代码: region = Shapefile.o

我已经建立了一个PostgreSQL数据库,正在使用Geodjango与保存在此数据库中的几何体进行交互。我的用例如下所示:

sliced_geometry = parks.intersection(region_boundaries)
  • 在数据库中,我有一个复杂的、巨大的多多边形,包含全国所有的公园这包含在单个几何体字段中
  • 我有另一个记录,其中包含我所在区域的边界
  • 我想做的是以某种方式截断/切片多多边形,以便它删除那些不在边界内的多边形
示例代码:

region = Shapefile.objects.get(pk=1)
region_boundaries = region.geometry # this contains the boundaries for the region

all_parks_in_country = Shapefile.objects.get(pk=2)
parks = all_parks_in_country.geometry # and this one now has all the national parks

sliced_geometry = ...
# .... And here is where I am stuck! 
我在下面提供视觉效果。请注意,我正在尝试在视图中获取切片几何体,在Python中——一旦有了切片几何体,我将根据需要使用它(在HTML文件或任何需要的地方显示它)

第一张地图显示了整个国家和绿色的国家公园

第二张地图以紫色轮廓显示了我所在地区的边界

第三张地图以红色显示了国家公园的多多边形(部分),理想情况下,这些多边形应该从国家几何中“切割”出来


由于已隔离几何图形,因此可以对其使用GEOS API方法

方法:

返回表示此几何图形与“其他”共享的点的几何图形

因此,您可以采用“切片”几何图形,如下所示:

sliced_geometry = parks.intersection(region_boundaries)

这是100%的惊人。。。这么简单,快速,准确地说是我想要做的。。。谢谢@用户74934乐意帮忙:D