【发布时间】:2021-06-18 17:30:59
【问题描述】:
我正在尝试将哥伦比亚的两个多边形(部门)合并为一个多边形。我的目标是只保留两个多边形的边缘,但这不会发生。下面我附上代码。感谢您的帮助。
download.file("https://github.com/nebulae-co/colmaps/raw/master/data/departamentos.rda","departamentos")
load("departamentos")
library(sf)
library(dplyr)
library(rgdal)
library(mapview)
df1 = subset(x = departamentos, depto == "Bogotá, D. C.")
df2 = subset(x = departamentos, depto == "Cundinamarca")
df1@data$id <- df2@data$id <- "a"
df3 = rbind(df1, df2, makeUniqueIDs = TRUE)
plot(df3)
绘制两个多边形
## option 1
df_12 <- sf::st_as_sf(df3) %>%
group_by(id) %>%
summarise(geometry = sf::st_union(geometry)) %>%
ungroup()
plot(as_Spatial(df_12))
## option 2
plot(raster::aggregate(df3))
## option 3
plot(rgeos::gUnaryUnion(df3))
## optiom 4
plot(st_union(st_make_valid(st_as_sf(df3))))
## option 5
plot(st_as_sf(rgeos::gBuffer(as_Spatial(st_make_valid(st_as_sf(df3))), byid=F, width=0)))
我的预期输出
【问题讨论】: