ฉันมีรายชื่อของบัฟเฟอร์เชิงพื้นที่ (30,000 บัฟเฟอร์) ที่ฉันสร้างขึ้นด้วยฟังก์ชั่นlapply
:
buff.pts <- lapply(1:nrow(pts.prj), FUN=function(l){
buff <- gBuffer(pts.prj[l,], width=1000) ## 1km
return(buff)
}))
> head(buff.pts)
[[1]]
class : SpatialPolygons
features : 1
extent : 307941.8, 311941.8, 4994518, 4998518 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs +towgs84=0,0,0
[[2]]
class : SpatialPolygons
features : 1
extent : 307226, 311226, 4991153, 4995153 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs +towgs84=0,0,0
จากรายการนี้ฉันจะรวมบัฟเฟอร์เชิงพื้นที่ทั้งหมดเพื่อรับ Shapefile กับบัฟเฟอร์ 30000 (หรือคุณลักษณะ) ได้อย่างไร (รูปร่างนี้จะถูกใช้ในฟังก์ชันaggregate
เพื่อรวมรูปหลายเหลี่ยมเชิงพื้นที่โดยแอตทริบิวต์)
ฉันทดสอบโค้ดนี้ แต่ฉันได้รับข้อความแสดงข้อผิดพลาดนี้:
test <- as.data.frame(do.call("rbind", buff.pts))
Error in as.data.frame(do.call("rbind", buff.pts)) :
error in evaluating the argument 'x' in selecting a method for function 'as.data.frame': Error in validObject(res) :
invalid class “SpatialPolygons” object: non-unique Polygons ID slot values
lapply
แทนที่จะใช้gBuffer
กับbyid = TRUE
?