rgeoapi — Un package R pour accéder à la GéoAPI

2 minute(s) read

rgeoapi est destiné à interroger la GéoAPI d’Etalab avec R. L’objectif ? Simplifier l’accès aux références géographiques des communes françaises.

GeoAPI

Développé par Etalab, en partenariat avec La Poste, l’INSEE et OpenStreetMap, GéoAPI vous permet de lancer des requêtes sur la base de données géographiques française (métropole et DROM).

L’interface renvoie des coordonnées géographiques WGS-84, au format JSON et GeoJSON. Le package rgeoapi a été développé afin de vous permettre d’intégrer les informations de cette API facilement dans vos projets R.

Installer rgeoapi

Pour l’heure, rgeoapi est disponible sur Github. Vous pouvez l’installer dans votre environnement R via la commande suivante :

devtools::install_github("ColinFay/rgeoapi")

Fonctionnement de rgeoapi

Cette première version du package s’articule autour de trois fonctions. Toutes renvoient un dataframe contenant les variables suivantes :

  • name : le ou les nom(s)
  • codeInsee: le ou les codes INSEE
  • codesPostaux : le ou les codes postaux
  • surface : la surface
  • lat et long: les coordonnées GPS
    library(rgeoapi)
    ## Loading required package: httr
    ## Loading required package: rjson
    

getByPC

Cette fonction prend un code postal en entrée, et renvoie la ville qui correspond à ce code. Attention, lorsque la ville répond à plusieurs codes postaux (comme Rennes), tous les codes sont affichés.

getByPC(35000)
##     name codeInsee codesPostaux surface      lat      long
## 1 Rennes     35238        35200    5035 48.11023 -1.678872
## 2 Rennes     35238        35700    5035 48.11023 -1.678872
## 3 Rennes     35238        35000    5035 48.11023 -1.678872

getByName

Comme son nom l’indique, cette fonction prend en entrée le nom d’une ville et renvoie l’ensemble des villes qui correspondent parfaitement ou partiellement.

getByName("Rennes")
##                    name codeInsee codesPostaux surface      lat       long
## 1                Rennes     35238        35200    5035 48.11023 -1.6788723
## 2                Rennes     35238        35700    5035 48.11023 -1.6788723
## 3                Rennes     35238        35000    5035 48.11023 -1.6788723
## 4     Rennes-le-Château     11309        11190    1497 42.91498  2.2774065
## 5      Rennes-les-Bains     11310        11190    1975 42.92166  2.3408405
## 6       Rennes-sur-Loue     25488        25440     547 47.01497  5.8551652
## 7 Rennes-en-Grenouilles     53189        53110     801 48.49128 -0.5083472

getByIC

getByIC prend un code INSEE en entrée, et renvoie le data.frame de la commune correspondante.

getByIC(35238)
##     name codeInsee codePostal surface      lat      long
## 1 Rennes     35238      35200    5035 48.11023 -1.678872
## 2 Rennes     35238      35700    5035 48.11023 -1.678872
## 3 Rennes     35238      35000    5035 48.11023 -1.678872

Plus d’infos et contact

Plus d’infos sur ce package, ainsi que le code source, disponible sur la page Github — vos feedbacks sont les bienvenus !

Des questions sur ce package ? Des retours à me faire ? N’hésitez pas à me contacter !

 

What do you think?