我正在尝试从顶点位置创建一组多边形,以 X,Y 格式保存。
这是我的数据示例 - 每行代表一个多边形的顶点。多边形是正方形
square <- rbind(c(255842.4, 4111578, 255862.4, 4111578, 255862.4, 4111558,
255842.4, 4111558, 255842.4, 4111578, 255842.4, 4111578),
c(257397.0, 4111309, 257417.0, 4111309, 257417.0, 4111289,
257397.0, 4111289, 257397.0, 4111309, 257397.0, 4111309))
ID <- c("SJER1", "SJER2")'
我正在使用SpatialPolygons
,因此我的数据需要在列表中。所以我创建了一个循环来尝试将我的数据从矩阵中转换为列表格式。
我在此站点上的其他一些问题中找到的代码之后创建了一个循环。我打破了每一步,试图理解为什么我只有一个多边形作为输出,即使我有 2 组点。
for (i in 1:2) {
pts <- rbind(c(square[i,1], square[i,2]), c(square[i,3], square[i,4]),
c(square[i,5],square[i,6]), c(square[i,7],square[i,8]),
c(square[i,9],square[i,10]))
sp1 <- list(Polygon(pts))
sp2 <- list(Polygons(sp1,i))
sp = SpatialPolygons(sp2)
}
plot(sp)
你能帮我理解我如何调整代码来写出两个多边形而不是一个多边形吗?而且,我如何将 ID 分配给每个多边形,因为我使用矩阵(正方形)作为我的起始数据集,如果我分配一个字符 ID,它会将我的所有数据转换为一个字符。
我的最终目标是SpatialPolygons
对象中有两个多边形,第一个带有 ID SJER1
,第二个带有SJER2
存储在SpatialPolygons
对象中的 ID。
然后我会把它写到一个 shapefile 中。