これはmy previous similar questionの更新です。これは同じタスクで、sf
フレームワーク内で実行する必要があります。r gis:ポリゴンの内側境界を特定する
このマップでは、ポリゴン、赤線の内側の境界を特定する必要があります。私はSpacedmanのanswer @包まれた自己記述された機能を利用するために使用さsp
枠組みの中で
。ここには:
identify_borders <- function(SPolyDF){
require(rgeos)
require(sp)
borders <- gDifference(
as(SPolyDF,"SpatialLines"),
as(gUnaryUnion(SPolyDF),"SpatialLines"),
byid=TRUE)
df <- data.frame(len = sapply(1:length(borders),
function(i) gLength(borders[i, ])))
rownames(df) <- sapply(1:length(borders),
function(i) [email protected][[i]]@ID)
SLDF <- SpatialLinesDataFrame(borders, data = df)
return(SLDF)
}
raster::boundaries()
を使用することもできます。
空間データを取得し、地図に
# dev version of ggplot2 for geom_sf()
devtools::install_github("tidyverse/ggplot2")
library(tidyverse)
library(sf)
load(url("https://ikashnitsky.github.io/misc/171211-so-question-identify-borders/geodata.Rdata"))
ggplot() +
geom_sf(data = gd_nuts0) +
geom_sf(data = gd_borders, color = "red") +
coord_sf(datum = NA) +
theme_void()