You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Geopandas中如何批量相交多个MultiPolygon/Polygon并获取交集多边形

计算GeoDataFrame中所有MultiPolygon的共同交集

你之前的思路有误——两两相交后再处理得到的是所有两两交集的并集,而非所有几何对象的共同交集。正确的做法是依次递进求交集:从第一个几何对象开始,逐个与后续的几何求交集,最终得到所有对象的共同重叠区域。

实现代码

import geopandas as gpd

# 假设你的GeoDataFrame是df
if len(df) == 0:
    raise ValueError("GeoDataFrame不能为空")

# 初始化交集为第一个几何对象
total_intersection = df['geometry'].iloc[0]

# 遍历剩余的几何,依次求交集
for geom in df['geometry'].iloc[1:]:
    total_intersection = total_intersection.intersection(geom)
    # 如果中途交集为空,可提前终止循环
    if total_intersection.is_empty:
        break

# 输出最终交集结果
print(total_intersection)

关键说明

  • 该方法会逐步缩小范围,最终结果可能是Polygon、MultiPolygon或空几何(无共同重叠区域时)。
  • 无需使用unary_union和polygonize,这类方法适用于合并线生成多边形的场景,不适合求所有对象的共同交集。

内容的提问来源于stack exchange,提问作者data en

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 14:35:23