Personnalisation
des
cartes géographiques

avec pst-map2d version 0.99


7 mars 2004
Une commande créée à cet effet permet de placer en un point du globe, défini par sa longitude et sa latitude, une ville, un lieu, un symbole ou une annotation quelconque. Cette commande qui utilise le package pst-node est la suivante :
\pnodeMap(longitude,latitude){nom}

longitude et latitude sont en degrés, le nom attribué au nœud ne doit pas contenir de lettre accentuée.

Par exemple, une commande ainsi définie :

\pnodeMap(-15,50){OceanAtlan}  
\rput{80}(OceanAtlan){OCÉAN ATLANTIQUE}

placera, avec une inclinaison de 80o, le nom OCÉAN ATLANTIQUE à l’endroit souhaité. C’est donc, grace à pst-node, une commande très puissante.

Cependant, si l’on souhaite placer une liste de villes avec leurs noms, il est plus pratique de définir une nouvelle macro à partir, bien sûr, de \pnodeMap. Ainsi pour placer toutes les capitales d’Europe, la commande suivante définie dans le préambule de cette documentation :

\def\mapput[#1](#2,#3)#4{%  
\pnodeMap(#2,#3){#4}  
\pscircle[fillstyle=solid,fillcolor=red](#4){1mm}  
\pscircle*(#4){0.3mm}  
\uput{1mm}[#1](#4){\textbf{#4}}}

permettra à partir d’un fichier capitales.tex, de placer rapidement les villes avec leurs noms sur la carte. Le fichier contient la liste des capitales d’Europe :

\mapput[90](2.316667,48.85000){Paris}  
\mapput[90](-0.133333,51.016667){London}  
\mapput[90](-3.683333,40.433333){Madrid}  
\mapput[90](-9.133333,38.716667){Lisbon}  
\mapput[90](1.516667,42.516667){Andorra}  
\mapput[90](12.483333,41.883333){Rome}  
\mapput[40](4.366667,50.850000){Brussels}  
\mapput[90](13.416667,52.533333){Berlin}  
\mapput[90](7.433333,46.966667){Bern}  
\mapput[0](12.583333,55.683333){Copenhagen}

Ce fichier sera ensuite appelé par \input{capitales.tex}, s’il est placé dans le même répertoire que le fichier de travail. Dans le cas contraire, il faudra ajouter le chemin permettant de le localiser : c:/mappemonde/wdb/capitales.tex, par exemple.

La figure suivante qui est la carte de BONNE, centrée sur Paris(2o33' E,48o50' N) été obtenue avec le script suivant :

\begin{center}  
\begin{pspicture}*(-4.5,-26)(11,-10)  
\psset{xunit=7.5,yunit=7.5}  
\psset{type=8,latitude0=48.85,longitude0=2.316667}  
\WorldMap[maillage=true,linewidth=0.75\pslinewidth,%  
          limiteL=190,borders=true]  
\input{capitales.tex}  
\pnodeMap(20,35){MerMed}  
\rput{15}(MerMed){\shortstack{MER\\MÉDITERANNÉE}}  
\pnodeMap(35,43){MerNoire}  
\rput{15}(MerNoire){\shortstack{MER\\NOIRE}}  
\pnodeMap(-15,50){OceanAtlan}  
\rput{80}(OceanAtlan){OCÉAN ATLANTIQUE}  
\pnodeMap(4,56){MerNoire}  
\rput(MerNoire){\shortstack{Mer\\du\\Nord}}  
\end{pspicture}  
\end{center}

PIC

En prenant un autre type de projection, par exemple Mercator : type=1, et le script suivant :

\begin{pspicture}*(-5.5,7)(10,24)  
\psset{xunit=5,yunit=5}  
\psset{type=1}  
\WorldMap[maillage=true,linewidth=0.75\pslinewidth,limiteL=190,borders=true]  
\input{capitales.tex}  
\pnodeMap(20,35){MerMed}  
\rput(MerMed){\shortstack{MER\\MÉDITERANNÉE}}  
\pnodeMap(35,43){MerNoire}  
\rput(MerNoire){\shortstack{MER\\NOIRE}}  
\pnodeMap(-15,50){OceanAtlan}  
\rput{90}(OceanAtlan){O C É A N\hspace{2em} A T L A N T I Q U E}  
\pnodeMap(4,56){MerNoire}  
\rput(MerNoire){\shortstack{Mer\\du\\Nord}}  
\end{pspicture}

PIC

Il faut adapter les coordonnées de la fenêtre de visualisation, ainsi que le grossissement souhaité à chaque type de projection (de façon empirique, par tâtonnements) :

\begin{pspicture}*(-5.5,7)(10,24)  
\psset{xunit=5,yunit=5}

Le nouveau package (0.99), avec la documentation complémentaire, ainsi que le fichier des capitales européennes est ici : pst-map2d

M.L. 7 mars 2004