如何只保留高速公路穿过的县?
How to only keep counties crossed by a motorway?
我是 R 的新手,对于使用 sf 和 ggplot2 包在 R 上绘制 GIS 也非常陌生。我有一个数据集“comuni”,其中包含意大利的所有公社(类似于县)和意大利所有高速公路之一,名为“only_motorway”。我知道我可以将某些区域用作千篇一律,并使用 st_intersection() 函数仅保留包含在这些区域内的高速公路。但是,如果我有 A3 高速公路的 shapefile,我想做相反的事情,我只想保留那些被该特定高速公路穿过的公社。
我试过按以下方式使用 st_intersection 函数:
only_motorway_A3 <- only_motorway %>%
filter(ref == "A3")
comuni_A3 <- st_intersection(only_motorway_A3,comuni)
ggplot() +
geom_sf(data = comuni_A3,
color = "black", size = 0.1, fill = "black") +
geom_sf(data = only_motorway_A3, size = 0.15, color = "green") +
coord_sf(crs = 32632) +
theme_void()
但是结果如下图:
ggplot
即 only_motorway_A3 和 comuni_A3 具有相同的几何列,并且它们都绘制了高速公路线。我想绘制的是来自 only_motoway_A3 的高速公路(绿色)和它周围的公社(黑色)从 comuni_A3 穿过。我希望它清楚,并提前感谢您的帮助!
考虑一个 sf::st_join()
调用,首先使用多边形,然后使用线串对象,参数 left
设置为 false。
它将执行两个对象的内部(过滤)空间连接。只有那些包含高速公路的多边形(第一个参数)将被保留。
我是 R 的新手,对于使用 sf 和 ggplot2 包在 R 上绘制 GIS 也非常陌生。我有一个数据集“comuni”,其中包含意大利的所有公社(类似于县)和意大利所有高速公路之一,名为“only_motorway”。我知道我可以将某些区域用作千篇一律,并使用 st_intersection() 函数仅保留包含在这些区域内的高速公路。但是,如果我有 A3 高速公路的 shapefile,我想做相反的事情,我只想保留那些被该特定高速公路穿过的公社。
我试过按以下方式使用 st_intersection 函数:
only_motorway_A3 <- only_motorway %>%
filter(ref == "A3")
comuni_A3 <- st_intersection(only_motorway_A3,comuni)
ggplot() +
geom_sf(data = comuni_A3,
color = "black", size = 0.1, fill = "black") +
geom_sf(data = only_motorway_A3, size = 0.15, color = "green") +
coord_sf(crs = 32632) +
theme_void()
但是结果如下图:
ggplot
即 only_motorway_A3 和 comuni_A3 具有相同的几何列,并且它们都绘制了高速公路线。我想绘制的是来自 only_motoway_A3 的高速公路(绿色)和它周围的公社(黑色)从 comuni_A3 穿过。我希望它清楚,并提前感谢您的帮助!
考虑一个 sf::st_join()
调用,首先使用多边形,然后使用线串对象,参数 left
设置为 false。
它将执行两个对象的内部(过滤)空间连接。只有那些包含高速公路的多边形(第一个参数)将被保留。