Cette documentation est tout-à-fait identique à celle de pst-map2d, en ce qui concerne les possibilités de personnalisation des cartes haute-définition.
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\mapputCapitales[#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. Ce fichier contient la liste des capitales d’Europe :
\mapputCapitales[90](2.316667,48.85000){Paris}
\mapputCapitales[90](-0.133333,51.016667){London} \mapputCapitales[90](-3.683333,40.433333){Madrid} \mapputCapitales[90](-9.133333,38.716667){Lisbon} \mapputCapitales[90](1.516667,42.516667){Andorra} \mapputCapitales[90](12.483333,41.883333){Rome} \mapputCapitales[40](4.366667,50.850000){Brussels} \mapputCapitales[90](13.416667,52.533333){Berlin} \mapputCapitales[90](7.433333,46.966667){Bern} \mapputCapitales[0](12.583333,55.683333){Copenhagen} etc. |
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.
De même le fichier villesFrance.tex contient les coordonnées de quelques villes de France, que l’on place avec la commande :
\mapputVilles[90](1.55,43.4833){Biarritz}
\mapputVilles[90](2.333,43.2167){Carcassonne} \mapputVilles[90](2.8833,42.7){Perpignan} \mapputVilles[90](0.3333,46.5833){Poitiers} etc. |
La carte de BONNE, centrée sur Paris(2o33' E,48o50' N) est 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} \WorldMapII[maillage=true,linewidth=0.75\pslinewidth,% limiteL=190,borders=true] \input{capitales.tex} \input{villesFrance.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} |
En prenant un autre type de projection, par exemple Mercator : type=1, et le script suivant :
\begin{center}
\hbox{\hspace{-3cm} \begin{pspicture}*(-6.5,30)(10,50) \psframe(-6.5,30)(10,50) \psset{xunit=15,yunit=15} \psset{type=1} \WorldMapII[maillage=true,linewidth=0.75\pslinewidth,% limiteL=190,borders=true] \input{capitales.tex} \input{villesFrance.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}} \end{center} |
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}*(-6.5,30)(10,50)
\psframe(-6.5,30)(10,50) \psset{xunit=15,yunit=15} \end{pspicture} |
Elle sera obtenue avec les lignes suivantes, avec l’option africa=true, si l’on dispose de suffisamment de mémoire :
\psset{africa=true,asia=false,namer=false,samer=false}
\begin{center} \hbox{\hspace{-3cm} \scalebox{0.9}{ \begin{pspicture}*(-10,-138.5)(11,-117.5) \psframe(-10,-138.5)(11,-117.5) \psset{xunit=40,yunit=40} %%%%%%%%%%Carte de Bonne centrée sur Rome \psset{type=8,latitude0=41.923611,longitude0=12.454167} \WorldMapII[maillage=true,linewidth=0.75\pslinewidth,limiteL=190,% borders=true,increment=2] \input{capitales.tex} \input{villesFrance.tex} \input{villesItalia.tex} \pnodeMap(10,38){MerMed} \rput{0}(MerMed){\shortstack{\Large\it MAR\\\Large\it MEDITERRANEO}} \pnodeMap(15,43){MerAdriatique} \rput{-35}(MerAdriatique){\Large\it MAR ADRIATICO} \pnodeMap(12,40){MerTyrr} \rput{0}(MerTyrr){\shortstack{\Large\it MAR\\\Large\it TIRRENO}} \pnodeMap(18,39){MerIonienne} \rput{0}(MerIonienne){\shortstack{\it MAR\\\it JONIO}} \pnodeMap(17.25,40){GolfeTarente} \rput{7}(GolfeTarente){\shortstack{\footnotesize\it Golfo di\\\footnotesize\it Taranto}} \pnodeMap(14,40){Longitude40} \rput{5}(Longitude40){\psframebox[fillstyle=solid,linestyle=none]{\large 40$^{\rm o}$N}} \pnodeMap(15.25,38.80){Stromboli} \uput[90](Stromboli){\textbf{Stromboli}} \psdot[linecolor=red,dotstyle=triangle](Stromboli) \pnodeMap(15,37.85){Etna} \uput[90](Etna){\textbf{Etna}} \psdot[linecolor=red,dotstyle=triangle](Etna) \pnodeMap(14.97,38.433){Vulcano} \uput[90](Vulcano){\textbf{Vulcano}} \psdot[linecolor=red,dotstyle=triangle](Vulcano) \pnodeMap(18.5,40.117){Otranto} \pnodeMap(19.328,40.313){Albania} \pnodeMap(12.45,37.8){Marsala} \pnodeMap(11.03,37.0167){Bon} \pcline{<->}(Otranto)(Albania) \lput*{:U}{70\,km} \pcline{<->}(Bon)(Marsala) \lput*{:U}{140\,km} \end{pspicture}}} \end{center} |