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.
mes_adresses <- data.frame(
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")
)
mes_adresses_geoc <- geocode_tbl(tbl = mes_adresses, adresse = adresses)
mes_adresses_geoc
# A tibble: 3 × 20
services adresses longitude latitude result_score result_score_next
<chr> <chr> <dbl> <dbl> <dbl> <chr>
1 DDTM76 Cité Ad… 1.10 49.4 0.520 0.47153062937062…
2 CVRH Nantes 25 Rue … -1.57 47.2 0.978 <NA>
3 DREAL Pays de la L… 5 Rue F… -1.54 47.2 0.971 <NA>
# ℹ 14 more variables: result_label <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.
[1] "result_score" "result_score_next" "result_label"
[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].
mes_adresses_sf <- st_as_sf(mes_adresses_geoc, coords = c("longitude", "latitude"), crs = 4326)
mapview(mes_adresses_sf)
Pour en savoir plus : site web de {banR}
, http://joelgombin.github.io/banR/.