将多个多边形合并为一个有边界的多边形 绘制两个多边形

问题描述

我正在尝试将哥伦比亚的两个多边形(部门)合并为一个多边形。我的目标是只保留两个多边形的边缘,但这不会发生。下面我附上代码。感谢您的帮助。

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)

绘制两个多边形

enter image description here

## 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)))

我的预期输出

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)