2017-07-03 96 views
0

我正在尝试在R中的点附近创建(100m)缓冲区。 我发现了两个非常有用的答案,但我仍然遇到问题。 这里的答案,我发现: Buffer (geo)spatial points in R with gbuffer Create buffer and count points in RR缓冲区地理空间点

我的问题是,当我创建我的缓冲,我只有一个大的缓冲区。

ANFR_IDF是一个数据帧。列“ID”是唯一的ID,列“坐标”的坐标。

ANFR_IDF$lat=as.numeric(gsub(",.*$", "", ANFR_IDF$coordonnees)) 
ANFR_IDF$lon=as.numeric(gsub(".*, ", "", ANFR_IDF$coordonnees)) 
coordinates(ANFR_IDF) <- c("lon", "lat") 
CRS=CRS("+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0") 
proj4string(ANFR_IDF)=CRS 

ANFR_IDF <- spTransform(ANFR_IDF,CRS) 
test2=gBuffer(ANFR_IDF, width=100,id=ANFR_IDF$ID, byid=TRUE) 

任何想法可能是什么问题?非常感谢!

回答

1

看起来您有一个地理坐标系,单位为十进制度数,所以当您为width参数提供100时,它会创建一个100位十进制缓冲区(一个巨大的缓冲区!)。尝试先投影

library(sp) 
ANFR_IDF_prj <- spTransform(ANFR_IDF, crs([your preferred projection])) 
test2=gBuffer(ANFR_IDF_prj, width=100,id=ANFR_IDF_prj$ID, byid=TRUE) 
+0

感谢您的解释,它完美的工作,我明白是什么问题! – Oolis