<- st_read("data/lot.gpkg", layer = "routes", quiet = TRUE)
route <- com[com$NOM_COM == "Gramat", ]
gramat
<- st_filter(x = route,
route_gramat y = gramat,
.predicate = st_intersects)
# Affichage
mf_map(gramat, col = "lightblue")
mf_map(route, add = TRUE)
mf_map(route_gramat, col = "tomato", lwd = 2, add = TRUE)
6 Sélection et jointure spatiale
6.1 Sélection spatiale
La fonction st_filter()
permet d’effectuer des sélections spatiales. L’argument .predicate
permet de choisir sur quel critère se fait la sélection en utilisant l’une des fonctions de “prédicat géométrique” (par exemple st_intersects()
, st_within()
, st_crosses()
…).
Nous allons ici sélectionner les routes qui intersectent la commune de Gramat
6.2 Jointure spatiale
La fonction st_join()
permet de réaliser des jointures spatiales. Cette fois-ci c’est l’argument join
qui utilise une fonction de prédicat géométrique.
<- st_join(x = route,
route_gramat y = com[, "INSEE_COM"],
join = st_intersects,
left = FALSE)
route_gramat
#> Simple feature collection with 1247 features and 3 fields
#> Geometry type: LINESTRING
#> Dimension: XY
#> Bounding box: xmin: 587147.6 ymin: 6394844 xmax: 608194.7 ymax: 6420006
#> Projected CRS: RGF93 v1 / Lambert-93
#> First 10 features:
#> ID CLASS_ADM INSEE_COM geom
#> 1 1 Départementale 46240 LINESTRING (590557.5 641181...
#> 2 2 Départementale 46240 LINESTRING (593733.2 641429...
#> 3 3 Départementale 46240 LINESTRING (590665 6412381,...
#> 4 4 Départementale 46128 LINESTRING (598940.9 640909...
#> 5 5 Départementale 46104 LINESTRING (603201.9 640181...
#> 6 6 Sans objet 46235 LINESTRING (598162.3 640108...
#> 7 7 Départementale 46090 LINESTRING (598887.3 639763...
#> 7.1 7 Départementale 46138 LINESTRING (598887.3 639763...
#> 7.2 7 Départementale 46233 LINESTRING (598887.3 639763...
#> 8 8 Départementale 46090 LINESTRING (601184.3 639697...
Exercice
Importez la couche des communes et celle des restaurants du Lot.
Réaliser une jointure spatiale pour connaître pour chaque restaurant le nom et l’identifiant de la commune dans laquelle il se trouve.