Carte avec routes réalisée avec le logiciel R

Il est possible de réaliser une carte administrative de France et d'y superposer de la couleur par zone (communes, sous-départements...).

On peut aussi y superposer les noms des villes et tracer "manuellement" des routes, des trajets.

Pour cela différents documents sont disponibles en ligne. Tels ces fichiers qu'on retrouve sur le site gadm où il est possible de télécharger par pays :

  • Différents fonds de cartes sont ainsi disponibles en téléchargement ici.
  • Le fond de carte pour la carte ci-dessous peut être téléchargé dans sur le lien ci-dessous ou encore directement sur le site ici.

Exemple de carte de Dordogne réalisée avec le logiciel R project

Carte annotée réalisée avec le logiciel R project R CRAN

1. Charger la carte vectorielle de France avec contours des départements - cette carte est disponible ici (source du fichier vectoriel)

library(raster)
gadm <- getData('GADM', country='FRA', level=3)
names(gadm)

2. Récupérer les coordonnées d'un département (ici la Dordogne)

indice = which(gadm$NAME_2=="Dordogne") # Dordogne
gadm$NAME_3[indice] # Sous-départements disponibles en dordogne

3. Afficher la carte

plot(gadm[indice,],col="white") # Tracer de la carte blanche (fond de carte)
# Coloration des sous-départements ==>
indice = which(gadm$NAME_3=="Périgueux") # Périgueux
plot(gadm[indice,],col="white",add=T)
indice = which(gadm$NAME_3=="Bergerac") # Bergerac
plot(gadm[indice,],col="#F6CECE",add=T)
indice = which(gadm$NAME_3=="Sarlat-la-Canéda") # Sarlat-la-Canéda
plot(gadm[indice,],col="#A4A4A4",add=T)
indice = which(gadm$NAME_3=="Nontron") # Nontron
plot(gadm[indice,],col="#BCF5A9",add=T)
# Ajouter Périgueux et Sarlat (points légendés)
points(0.716691,45.182293,col="black",pch=16) # attention : longitude en premier # Périgueux
text(0.72,45.23,"Périgueux",,adj=c(0.5,0.5),cex=2)
points(1.210378,44.886473,col="black",pch=16)
text(1.210378,44.95,"Sarlat",,adj=c(0.5,0.5),cex=2)

4. Ajouter le trajet entre Périgueux et Sarlat (tracer une ligne en somme !)

l1 = cbind(c(0.716691, 0.832597, 0.857316, 0.959213, 1.001769, 1.056599, 1.146792,1.210378),
c(45.182293,45.121641,45.048920,44.970987,44.936186,44.944144,44.911634,44.886473)) # On définit les coordonnées de la route
Sl1 = Line(l1)
ligne = Lines(list(Sl1), ID="trajet1") # Possibilité de regrouper plusieurs trajets entre les parenthèses de list
lines(ligne,col="black",lwd=2)

En reprenant ce code ci-dessus des partie 3 et 4 précédé de la ligne ci-dessous commençant par jpeg() et en terminant par dev.off(), on va générer une belle image dans le répertoire par défaut que l'on peut afficher avec la commande getwd().

# Ligne à mettre au début
jpeg(width = 1024, height = 1024) # exportation de la carte au format image
# Ligne à mettre à la fin
dev.off() # fin d'exportation de la carte

Mise à jour de la page juin 2019