假设我有这张Map,代表R中北卡罗来纳州(美国)的边界:
library(sf)
library(leaflet)
library(dplyr)
# built in shapefile
nc <- st_read(system.file("gpkg/nc.gpkg", package="sf"), quiet = TRUE) %>%
st_transform(st_crs(4326)) %>%
st_cast('POLYGON')
nc <- nc[nc$NAME %in% c("Cleveland", "Gaston", "Rutherford", "Burke"), ]
leaflet(data = nc) %>% addPolygons( stroke = FALSE) %>% addTiles(group = "OSM") %>% addProviderTiles(provider = providers$OpenStreetMap) %>% addPolygons(data = nc, weight=1, popup = ~NAME, label = ~NAME, group = "name", col = 'blue')
**我的问题:**我试图找出描述这个多边形外部的坐标列表(即“红色”):
我为此尝试了以下代码:
# Extract the boundary of the nc object
nc_boundary <- st_boundary(nc)
# Get the coordinates of the boundary
nc_boundary_coords <- data.frame(st_coordinates(nc_boundary))
然而,当我试图绘制这个图时-我可以看到该图不对应于外部边界,但也包含交叉点:
plot(nc_boundary_coords$X, nc_boundary_coords$Y)
我想我可以通过删除所有重复的示例来解决这个问题-但这仍然不起作用:
df = data.frame(nc_boundary_coords$X, nc_boundary_coords$Y)
df <- df[!duplicated(df), ]
但什么都没改变。
有人能告诉我怎么修吗?
谢谢!
2条答案
按热度按时间w8f9ii691#
使用
st_union()
将所选县合并为单个几何体:egmofgnx2#
这是你想要的吗?不同的是我先创建了一个联合。你展示的图看起来像是有内部和外部边界的边界。