Это пример списка с двумя отдельными (не смежными или перекрывающимися) SpatialPolygons, и я хотел бы объединить их в один шейп-файл. По какой-то причине, что бы я ни пытался, я получаю ошибку:
library(sp)
coords = matrix(c(78.46801, 19.53407,
78.46801, 19.74557,
78.83157, 19.74557,
78.83157, 19.53407,
78.46801, 19.53407),
ncol = 2, byrow = TRUE)
P1 = Polygon(coords)
Ps1 = SpatialPolygons(list(Polygons(list(P1), ID = "a")), proj4string=CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"))
coords2 = matrix(c(77.46801, 17.53407,
77.46801, 17.74557,
77.83157, 17.74557,
77.83157, 17.53407,
77.46801, 17.53407),
ncol = 2, byrow = TRUE)
P2 = Polygon(coords2)
Ps2 = SpatialPolygons(list(Polygons(list(P2), ID = "a")), proj4string=CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"))
P_list <- list(Ps1,Ps2)
joined = SpatialPolygons(lapply(P_list, function(x){x@polygons[[1]]}))
Error in validObject(res) :
invalid class “SpatialPolygons” object: non-unique Polygons ID slot values