Chapitre 9 Géocodage
# CRAN
library(sf)
library(tidyverse)
library(mapview)
library(mapedit)
# Github
# remotes::install_github("joelgombin/banR")
library(banR)
9.1 Géolocalisation à l’adresse
Plusieurs packages permettent de géocoder des adresses.
Le package {tidygeocoder}
utilise un grand nombre de services de géocodage en ligne et est international.
Le package {banR}
de Gombin et Chevalier, exploite l’API de la Base Adresse Nationale.
Il s’intalle depuis github.
Il est particulièrement approprié pour géocoder des adresses en France.
<- data.frame(
mes_adresses services = c("DDTM76", "CVRH Nantes", "DREAL Pays de la Loire"),
adresses = c("Cité Administrative, 2 rue Saint Sever, 76000 ROUEN",
"25 Rue du Douet Garnier, 44000 Nantes",
"5 Rue Françoise Giroud, 44200 Nantes")
)
<- geocode_tbl(tbl = mes_adresses, adresse = adresses)
mes_adresses_geoc mes_adresses_geoc
# A tibble: 3 × 20
services adresses latitude longitude result_label result_score
<chr> <chr> <dbl> <dbl> <chr> <dbl>
1 DDTM76 Cité Admi… 49.4 1.10 2 Rue Saint… 0.520
2 CVRH Nantes 25 Rue du… 47.2 -1.57 25 Rue du D… 0.978
3 DREAL Pays de la Loire 5 Rue Fra… 47.2 -1.54 5 Rue Franç… 0.971
# ℹ 14 more variables: result_score_next <chr>, result_type <chr>,
# result_id <chr>, result_housenumber <chr>, result_name <chr>,
# result_street <chr>, result_postcode <chr>, result_city <chr>,
# result_context <chr>, result_citycode <chr>, result_oldcitycode <chr>,
# result_oldcity <chr>, result_district <chr>, result_status <chr>
Le résultat est un df enrichi de 15 nouveaux attributs dont le nom commence par result_
+ les champs longitude et latitude.
%>%
mes_adresses_geoc select(starts_with("result_")) %>%
names()
[1] "result_label" "result_score" "result_score_next"
[4] "result_type" "result_id" "result_housenumber"
[7] "result_name" "result_street" "result_postcode"
[10] "result_city" "result_context" "result_citycode"
[13] "result_oldcitycode" "result_oldcity" "result_district"
[16] "result_status"
Le champ result_score
fournit un indicateur de la qualité de la géolocalisation.
Il reste alors à transformer le résultat en df spatial, grâce à la fonction st_as_sf()
vue au chapitre [lire-des-donnees-spatiales].
<- st_as_sf(mes_adresses_geoc, coords = c("longitude", "latitude"), crs = 4326)
mes_adresses_sf mapview(mes_adresses_sf)
Pour en savoir plus : site web de {banR}
, http://joelgombin.github.io/banR/.