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

如何查找覆盖指定数据点的SpatVector空间多边形

查找覆盖指定点的terra多边形对象

你已经通过以下代码创建了包含多个多边形的SpatVector:

library(terra)
er <- rbind(c(6225, -6050), c(11250, -5400), c(10800, -3100), c(7560, -3545), c(5850, -3800))
re <- rbind(c(5850, -3800), c(7560, -3545), c(6900, -100), c(5250, -350))
wr <- rbind(c(10750, -3100), c(15600, -2450), c(14650, 2850), c(12650, 2575), c(11600, 2430), c(4950, 1500), c(5250, -350), c(5850, -3800), c(7560, -3545))
pa <- rbind(c(4950, 1500), c(5250, -350), c(-2500, -1500), c(-2100, -4100), c(-4700, -4400), c(-4930, -2800), c(-5300, 0))
tb <- rbind(c(-4700, -4400), c(-4425, -6350), c(-1775, -6100), c(-2100, -4100))
exl <- rbind(c(-4700, -4400), c(-4425, -6350), c(-6300, -6525), c(-6750, -3000), c(-4930, -2800))
exu <- rbind(c(11600, 2430), c(12650, 2575), c(12400, 4050), c(11350, 3925))
whole_space <- rbind(cbind(object = 1, part = 1, er, hole = 0),
            cbind(object = 2, part = 2, wr, hole = 0),
            cbind(object = 3, part = 3, pa, hole = 0),
            cbind(object = 4, part = 4, tb, hole = 0),
            cbind(object = 5, part = 5, re, hole = 0),
            cbind(object = 6, part = 6, exl, hole = 0),
            cbind(object = 7, part = 7, exu, hole = 0))
whole_space <- vect(whole_space, "polygons")

要找到覆盖点c(8506, -4010)的多边形,可使用terra包提供的两种方法:

方法一:使用is.inside()函数

is.inside()会返回逻辑向量,标记每个多边形是否包含目标点,据此筛选出符合条件的多边形:

# 将目标点转换为SpatVector对象
point <- vect(cbind(8506, -4010), type = "points")

# 判断点是否在每个多边形内部
inside_flag <- is.inside(point, whole_space)

# 提取包含该点的多边形
covered_polygons <- whole_space[inside_flag, ]

# 查看结果
print(covered_polygons)

方法二:使用extract()函数

extract()可提取点所在位置的多边形信息,返回结果中的ID对应多边形的索引:

# 将目标点转换为SpatVector对象
point <- vect(cbind(8506, -4010), type = "points")

# 提取点所在的多边形
extract_result <- extract(whole_space, point)

# 根据索引获取对应多边形
covered_polygons <- whole_space[extract_result$ID, ]

# 查看结果
print(covered_polygons)

运行上述代码后,会发现目标点被object=1的多边形(即er多边形)覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 05:45:42