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

如何将多边形相减得到的SpatialPolygons对象转换为点数据框?

提取相减后SpatialPolygons对象的顶点坐标

方法说明

res是gDifference返回的SpatialPolygons对象,其内部包含多边形的环(外环/内环)信息,我们可以通过遍历对象的内部结构提取所有顶点坐标:

提取所有顶点(包括内环)

# 初始化空数据框存储顶点坐标
vertices_df <- data.frame(longitude = numeric(), latitude = numeric())

# 遍历每个多边形组件
for (poly in res@polygons) {
  # 遍历多边形的每个环
  for (ring in poly@Polygons) {
    # 提取坐标矩阵,移除最后一行(与第一行重复的闭合点)
    coords <- ring@coords[-nrow(ring@coords), ]
    # 转换为数据框并合并
    vertices_df <- rbind(vertices_df, data.frame(longitude = coords[, 1], latitude = coords[, 2]))
  }
}

仅提取外环顶点(排除内环洞)

如果只需要相减后区域的外边界顶点,可以通过ring@hole判断是否为内环,只保留非洞的外环:

vertices_df <- data.frame(longitude = numeric(), latitude = numeric())

for (poly in res@polygons) {
  for (ring in poly@Polygons) {
    # 仅处理非洞的外环
    if (!ring@hole) {
      coords <- ring@coords[-nrow(ring@coords), ]
      vertices_df <- rbind(vertices_df, data.frame(longitude = coords[, 1], latitude = coords[, 2]))
    }
  }
}

执行完代码后,vertices_df就是包含所有目标顶点经纬度的数据框,可直接用于后续分析。

内容的提问来源于stack exchange,提问作者ΚΩΝΣΤΑΝΤΙΝΟΣ ΠΑΝΑΓΙΩΤΟΥ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 23:06:32