Tatiak

Excel, Vba, Vbs


28 février 2021

Dessin de cartes géographiques sur Excel

Pour répondre aux demandes relatives au dessin de cartes géographiques sur Excel, voici des explications sur la méthode que j'utilise.

1/ Tout d'abord pour dessiner une forme quelconque sur Excel un simple Shapes.AddPolyline suffit, du genre :
     Set Sh = Sheets("Carte").Shapes.AddPolyline(Points)
Ligne dans laquelle Sh est un Shape, et Points est une collection de coordonnées xy

2/ Bon à savoir, dans excel le repère à considérer est constitué d'un point zéro correspondant au coin supérieur gauche de la cellule A1 de la feuille utilisée, avec des ordonnées Y inversées par rapport à un repère cartésien ordinaire.

3/ Avec ces 2 info, on peut donc alors récupérer des jeux de coordonnées pour dessiner. Parmi les données utilisables en Opensource, un site possible : public.opendatasoft.com
Ce site propose une multitude de jeux de données avec des coordonnées GPS, des colonnes de 'geo_shapes'

4/ Il convient alors de transformer les points GPS (repère sphérique selon référence méridien de Greenwich et Equateur) en points Excel (repère plat selon référence coin supérieur gauche de la feuille)
Pour ce faire, j'utilise la fonction XY (de mon cru) suivante :
Function XY(lat As Single, lng As Single) As Coord
         XY.x = marge_ghe + (-Longitude0 + lng) * coef_lng * Echelle
         XY.y = marge_top + (Latitude0 - lat) * coef_lat * Echelle
End Function
Dans laquelle :
* Coord est un type personnalisé contenant une paire xy de Single
* Marge_ghe et marge_top : 2 valeurs pour placer mon dessin à l'endroit souhaité de ma feuille
* Longitude0 et Latitude0 : 2 valeurs à calculer en fonction du jeu de coordonnées GPS (qui vont correspondre au point zéro de ma feuille)
* coef_lng et coef_lat : 2 valeurs à définir pour compenser la rotondité de la terre (et pour éviter de trop déformer le contour obtenu)
* Echelle : pour que le dessin soit "à la bonne taille" selon la zone à dessiner (l'échelle ne sera pas la même pour dessiner une commune seule ou un pays en entier)
* et enfin lng et lat : le couple de coordonnées Gps utilisées.

Voilà tout, avec ces info il devient simple de dessiner une carte quelconque dont on a obtenu le jeu de coordonnées GPS.

Peut-être encore juste une remarque. Souvent un jeu de coordonnées GPS est composé d'une chaine de caractères dépassant largement le contenu maxi accepté par une cellule excel. Pour ne rien perdre, je préfère personnellement ne rien stocker dans excel (ni en csv) mais lire directement les info à partir des sites fournisseurs, au fur et à mesure des besoins. On peut le faire via décodage de json par exemple, et d'autres méthodes sont possibles également.

Pour voir la mise en oeuvre de ces principes, vous pouvez vous référer aux nombreux exemples publiés sur mon site.

Si ces explications de ma méthode vous sont utiles, laissez-moi un commentaire!
Pierre

Posté par tatiak à 12:15 - Excel-Cartographie - Commentaires [2] - Permalien [#]

Commentaires sur Dessin de cartes géographiques sur Excel

Nouveau commentaire