我目前正在处理地理数据以便将其映射。我有两个不同的shapefile。我想做的是在加拿大和美国之间添加一个粗体边框,我不知道该怎么做。
# Load packages ----------------------------------------------------------------
library(dplyr)
library(readr)
library(ggplot2)
library(rgdal)
library(ggmap)
# Load data --------------------------------------------------------------------
canada <- readOGR(dsn = "00-raw/gcd_000b11a_e/", layer = "canada") %>% fortify()
us <- readOGR(dsn = "00-raw/usmaps/us/", layer = "co99_d90") %>% fortify()
# Maps -------------------------------------------------------------------------
gg <- ggplot() + geom_map(data=canada, map=canada,
aes(long, lat, map_id=id),
size=0.1, fill=NA, color = "black") +
coord_map("stereographic", xlim=c(-120, -60)) +
geom_map(data=us, map=us,
aes(long, lat, map_id=id),
size=0.1, fill=NA, color = "black") +
theme_nothing(legend = T)
最佳答案
使用sf
包中的地理空间统计功能来查找边界“形状”。然后在上面绘制。
library(sf)
border <- st_intersection(us, canada)
gg + geom_map(data=border, map=us,
aes(long, lat,
size=0.1, fill=NA, color = "red")
关于r - 在R.中为美国和加拿大之间添加粗体边框。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43354631/