我正在尝试在使用ggplot2 :: geom_sf()绘制的地图中创建一个放大正方形(多边形) 因此,我需要将多边形作为一个简单的要素,以便可以将正方形和地图绘制在一起。 我可以使用以下代码创建多边形。
zoom_square_1<- rbind(c(-10.821079,-68.403542),
c(-10.821079,-68.367060),
c(-10.862918,-68.367060),
c(-10.862918,-68.403542),
c(-10.821079,-68.403542)) # add the first point again to it wrap up.
zoom_square_1_pol <- st_polygon(list(zoom_square_1))
plot(zoom_square_1_pol) # it returns the polygon.
但是,当我尝试为其分配坐标参考系统(CRS)时,它不起作用。这些是我到目前为止尝试过的代码。
sp::proj4string(zoom_square_1_pol) <- CRS("+proj=longlat +datum=WGS84 +no_defs")
zoom_square_1_pol_ex1 <- st_as_sf(x = zoom_square_1_pol[[1]],
crs = "+proj=longlat +datum=WGS84 +no_defs")
zoom_square_1_pol_ex2 <- st_transform(x = zoom_square_1_pol,
crs = "+proj=longlat +datum=WGS84 +no_defs")
欢迎任何帮助。
在克里斯发表评论之后,我实际上可以使用ggplot2 :: geom_sf()绘制多边形,并意识到自乞讨以来,我的经纬度坐标就位于错误的位置。因此,这是代码的最终版本:
zoom_square_1<- rbind(c(-68.403542,-10.821079),
c(-68.367060,-10.821079),
c(-68.367060,-10.862918),
c(-68.403542,-10.862918),
c(-68.403542,-10.821079)) #add the first point again to it wrap up.
zoom_square_1_pol <- st_polygon(list(zoom_square_1))
zoom_square_1_pol_CRS<- st_sfc(x = zoom_square_1_pol,
crs = "+proj=longlat +datum=WGS84 +no_defs")
答案 0 :(得分:2)
我可以通过将正方形作为列表st_as_sfc
来设置crs:
res <- st_as_sfc(list(zoom_square_1_pol),
crs = "+proj=longlat +datum=WGS84 +no_defs")