diff options
Diffstat (limited to 'Master/texmf-dist/doc/generic/pst-geo/pst-map2dII.tex')
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-geo/pst-map2dII.tex | 493 |
1 files changed, 493 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-geo/pst-map2dII.tex b/Master/texmf-dist/doc/generic/pst-geo/pst-map2dII.tex new file mode 100644 index 00000000000..bf73ed554f7 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-geo/pst-map2dII.tex @@ -0,0 +1,493 @@ +%% +%% This is file `pst-mapII.tex', +%% +%% IMPORTANT NOTICE: +%% +%% Package `pst-map2dII.tex' +%% +%% Manuel Luque <Mluque5130@aol.com> (France) +%% Giuseppe Matarazzo <joematara@hotmail.com> (Italy) +%% Herbert Voss <voss@perce.de> (Germany) +%% +%% May 09, 2004 +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Distributed from CTAN archives +%% in directory macros/latex/base/lppl.txt. +%% +%% DESCRIPTION: +%% `pst-map2dII' is a PSTricks package to create geographical objects +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\fileversion{0.8} +\def\filedate{2004/05/09} + +\message{`PST-map2dII v\fileversion, \filedate\space (ML/GM/HV)} + +\csname PSTMapTwoDII\endcsname +\let\PSTMapTwoDIILoaded\endinput + +% Require PSTricks +\ifx\PSTnodesLoaded\endinput\else\input pst-node.tex\fi +% David Carlisle interface to the `keyval' package. +\input pst-key.tex +% +\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax + +\SpecialCoor +% +\define@key{psset}{path}{\edef\psk@WorldMap@Path{#1}} % chemin des données +\setkeys{psset}{path=data} +% +\define@key{psset}{type}{\edef\psk@WorldMapII@type{#1}} +\setkeys{psset}{type=1} +\define@key{psset}{increment}{\edef\psk@WorldMapII@increment{#1}} +\setkeys{psset}{increment=10} +% type=1 ==> Mercator +% type=2 ==> Lambert +% type=3 ==> simple +% type=4 ==> Sanson-Flamsteed +% type=5 ==> cylindrical +% type=6 ==> Babinet +% type=7 ==> Collignon +% type=8 ==> Bonne +\define@key{psset}{n}{\edef\psk@WorldMap@n{#1}} +\setkeys{psset}{n=1.77245} % sqrt(pi) % pour Collignon +% +\define@key{psset}{limiteL}{\edef\psk@WorldMap@limiteL{#1}} +\setkeys{psset}{limiteL=180} % longitude limite +% +\define@key{psset}{limiteL}{\edef\psk@WorldMap@limiteL{#1}} +\setkeys{psset}{limiteL=180} % longitude limite +% +\define@key{psset}{latitude0}{\edef\psk@WorldMap@latitudeO{#1}} +\setkeys{psset}{latitude0=45} % pour Bonne latitude 0 +% +\define@key{psset}{longitude0}{\edef\psk@WorldMap@longitudeO{#1}} +\setkeys{psset}{longitude0=0} % pour Bonne longitude 0 +% +\newif\ifPst@WorldMap@capitals +\define@key{psset}{capital}[false]{\@nameuse{Pst@WorldMap@capitals#1}} +\setkeys{psset}{capital=false} +% +\newif\ifPst@WorldMap@city +\define@key{psset}{city}[false]{\@nameuse{Pst@WorldMap@city#1}} +\setkeys{psset}{city=false} +% +\newif\ifPst@WorldMapII@Rivers +\define@key{psset}{rivers}[true]{\@nameuse{Pst@WorldMapII@Rivers#1}} +\setkeys{psset}{rivers=false} +% +\newif\ifPst@WorldMapII@Borders +\define@key{psset}{borders}[true]{\@nameuse{Pst@WorldMapII@Borders#1}} +\setkeys{psset}{borders=true} +% +\newif\ifPst@WorldMapII@maillage +\define@key{psset}{maillage}[true]{\@nameuse{Pst@WorldMapII@maillage#1}} +\setkeys{psset}{maillage=true} +% +\newif\ifPst@WorldMapII@Fill +\define@key{psset}{Fill}[true]{\@nameuse{Pst@WorldMapII@Fill#1}} +\setkeys{psset}{Fill=true} +% +\newif\ifPst@WorldMapII@Europe +\define@key{psset}{europe}[true]{\@nameuse{Pst@WorldMapII@Europe#1}} +\setkeys{psset}{europe=true} +% +\newif\ifPst@WorldMapII@Asia +\define@key{psset}{asia}[true]{\@nameuse{Pst@WorldMapII@Asia#1}} +\setkeys{psset}{asia=false} +% +\newif\ifPst@WorldMapII@Africa +\define@key{psset}{africa}[true]{\@nameuse{Pst@WorldMapII@Africa#1}} +\setkeys{psset}{africa=false} +% +\newif\ifPst@WorldMapII@namer +\define@key{psset}{namer}[true]{\@nameuse{Pst@WorldMapII@namer#1}} +\setkeys{psset}{namer=false} +% +\newif\ifPst@WorldMapII@samer +\define@key{psset}{samer}[true]{\@nameuse{Pst@WorldMapII@samer#1}} +\setkeys{psset}{samer=false} +% +\newif\ifPst@WorldMapII@all% hv 2004-05-05 +\define@key{psset}{all}[true]{% + \setkeys{psset}{europe=true,asia=true,africa=true,namer=true,samer=true} +} +% +\define@key{psset}{level}{\edef\psk@WorldMapII@level{#1}}% hv 2004-05-05 +\setkeys{psset}{level=5}% only every 5th data record +% +\def\VariablesMap{% + /Coeff_mercatorY {2 div 45 add dup sin exch cos div ln 57.2958 mul} def % Mercator + /Coeff_simpleY {1 mul} def % simple + /Coeff_lambertY {sin 57.2958 mul} def % Lambert + /Coeff_sanson_flamsteedY {1 mul} def % Sanson_Flamstead + /Coeff_cylindricalY { dup sin exch cos div 57.2958 mul} def % Cylindrical + /Coeff_babinetY { sin 2 sqrt mul 57.2958 mul} def % Babinet + /n \psk@WorldMap@n\space def + /Coeff_collignonY { 0 ge { 1 2 sqrt 90 Y sub 2 div sin mul sub 57.2958 mul n mul} + { 1 2 sqrt 90 Y add 2 div sin mul sub 57.2958 mul n mul neg} ifelse }def % Collignon + /Coeff_BonneY {pop /RHO l0 dup cos exch sin div Y neg l0 add 57.2958 div add def + /Theta Y cos X L0 sub mul RHO div def + Theta cos RHO mul neg 57.2958 mul}def % Bonne + /Coeff_mercatorX {1 mul} def % Mercator + /Coeff_simpleX {1 mul} def % simple + /Coeff_lambertX {1 mul} def % Lambert + /Coeff_sanson_flamsteedX {Y cos mul} def % Sanson_Flamstead + /Coeff_cylindricalX { 1 mul } def % Cylindrical + /Coeff_babinetX { 2 mul 2 sqrt mul 3.1415926 div Y cos mul} def % Babinet + /Coeff_collignonX { 2 mul 2 sqrt mul 90 Y abs sub 2 div sin mul n div} def % Collignon + /l0 \psk@WorldMap@latitudeO\space def + /L0 \psk@WorldMap@longitudeO\space def + /Coeff_BonneX {pop /RHO l0 dup cos exch sin div Y neg l0 add 57.2958 div add def + /Theta Y cos X L0 sub mul RHO div def + Theta sin RHO mul 57.2958 mul}def % Bonne + \ifcase\psk@WorldMapII@type\or% type 1 % hv 2004-05-04 + /CoeffY {Coeff_mercatorY} def + /CoeffX {Coeff_mercatorX} def + /StartY -85 def + \or% type 2 % hv 2004-05-04 + /CoeffY {Coeff_simpleY} def + /CoeffX {Coeff_simpleX} def + /StartY -90 def + \or% type 3 % hv 2004-05-04 + /CoeffY {Coeff_lambertY} def + /CoeffX {Coeff_lambertX} def + /StartY -90 def + \or% type 4 % hv 2004-05-04 + /CoeffY {Coeff_sanson_flamsteedY} def + /CoeffX {Coeff_sanson_flamsteedX} def + /StartY -90 def + \or% type 5 % hv 2004-05-04 + /CoeffY {Coeff_cylindricalY} def + /CoeffX {Coeff_cylindricalX} def + /StartY -85 def + \or% type 6 % hv 2004-05-04 + /CoeffY {Coeff_babinetY} def + /CoeffX {Coeff_babinetX} def + /StartY -90 def + \or% type 7 % hv 2004-05-04 + /CoeffY {Coeff_collignonY} def + /CoeffX {Coeff_collignonX} def + /StartY -90 def + \else% every other is type 8 % hv 2004-05-04 + /CoeffY {Coeff_BonneY} def + /CoeffX {Coeff_BonneX} def + /StartY -90 def + \fi + /step \psk@WorldMapII@level\space def % hv 2004-05-04 +} + % +\newcount\TypeProjection +\def\WorldMapII{\pst@object{WorldMapII}} +\def\WorldMapII@i{\@ifnextchar[{\WorldMapII@do}{\WorldMapII@do[]}} +\def\WorldMapII@do[#1]{{% + \setkeys{psset}{#1}% + \begin@ClosedObj + \addto@pscode{% + /increment \psk@WorldMapII@increment\space def + \VariablesMap + 1 setlinejoin + 0 0 translate + /xunit {\pst@number\psxunit\space mul 20 div } def + /yunit {\pst@number\psyunit\space mul 20 div } def + /limiteLongitude \psk@WorldMap@limiteL\space def +% + /CalculsPoints { + /region exch def + gsave + newpath + /nbr region length def % nombre de points + region nbr 2 sub get + /Y exch def + region nbr 1 sub get + /X exch def + X CoeffX xunit Y CoeffY yunit moveto + /ncount 0 def % hv 2004-05-04 + nbr 2 sub -2 2 { + /Counter exch def % hv 2004-05-04 + /ncount ncount 1 add def % hv 2004-05-04 + ncount step ge { % hv 2004-05-04 + region Counter get + /Y exch def + region Counter 1 add get + /X exch def + X CoeffX xunit Y CoeffY yunit lineto + /ncount 0 def % hv 2004-05-04 + }{ /ncount ncount 1 add def } ifelse % hv 2004-05-04 + } for + } def +% + /CalculsPointsAsia { + /region exch def + gsave + newpath + /nbr region length def % nombre de points + region nbr 2 sub get + /Y exch def + region nbr 1 sub get + /X exch def + X 0 le {/X X 360 add def} if + X CoeffX xunit Y CoeffY yunit moveto + /ncount 0 def % hv 2004-05-04 + nbr 2 sub -2 2 { + /Counter exch def % hv 2004-05-04 + /ncount ncount 1 add def % hv 2004-05-04 + ncount step ge { % hv 2004-05-04 + region Counter get + /Y exch def + region Counter 1 add get + /X exch def + X 0 le {/X X 360 add def} if + X CoeffX xunit Y CoeffY yunit lineto + /ncount 0 def % hv 2004-05-04 + }{ /ncount ncount 1 add def } ifelse % hv 2004-05-04 + } for + } def +% + /Draw { + { CalculsPoints + stroke + } forall + } def +% + /DrawAsia { + { CalculsPointsAsia + stroke + } forall + } def + /DrawRivers { + { CalculsPoints + gsave + 0 0 1 setrgbcolor + stroke + grestore + } forall + } def +% + /DrawRiversAsia { + { CalculsPointsAsia + gsave + 0 0 1 setrgbcolor + stroke + grestore + } forall + } def + /DrawBdy { + { CalculsPoints + gsave + 1 0 0 setrgbcolor + stroke + grestore + } forall + } def + \ifPst@WorldMapII@Europe + (\psk@WorldMap@Path/europe-cil.dat) run + europe-cil + Draw + \ifPst@WorldMapII@Rivers + (\psk@WorldMap@Path/europe-riv.dat) run + europe-riv + DrawRivers + \fi + \ifPst@WorldMapII@Borders + (\psk@WorldMap@Path/europe-bdy.dat) run + europe-bdy + DrawBdy + \fi + \fi +% +\ifPst@WorldMapII@Africa +(\psk@WorldMap@Path/africa-cil.dat) run + africa-cil + Draw +\ifPst@WorldMapII@Rivers +(\psk@WorldMap@Path/africa-riv.dat) run + africa-riv + DrawRivers + \fi +\ifPst@WorldMapII@Borders +(\psk@WorldMap@Path/africa-bdy.dat) run + africa-bdy + DrawBdy +\fi +\fi +% +\ifPst@WorldMapII@Asia +(\psk@WorldMap@Path/asia-cil.dat) run + asia-cil + DrawAsia +(\psk@WorldMap@Path/asia-isl.dat) run + asia-isl + Draw +\ifPst@WorldMapII@Rivers +(\psk@WorldMap@Path/asia-riv.dat) run + asia-riv + DrawRiversAsia + \fi +\ifPst@WorldMapII@Borders +(\psk@WorldMap@Path/asia-bdy.dat) run + asia-bdy + DrawBdy +\fi +\fi +\ifPst@WorldMapII@namer +(\psk@WorldMap@Path/namer-cil.dat) run + namer-cil + Draw +\ifPst@WorldMapII@Rivers +(\psk@WorldMap@Path/namer-riv.dat) run + namer-riv + DrawRivers + \fi +\ifPst@WorldMapII@Borders +(\psk@WorldMap@Path/namer-bdy.dat) run +(\psk@WorldMap@Path/namer-pby.dat) run + namer-bdy + DrawBdy + namer-pby + DrawBdy +\fi + \fi +\ifPst@WorldMapII@samer +(\psk@WorldMap@Path/samer-cil.dat) run + samer-cil + Draw + (\psk@WorldMap@Path/samer-arc.dat) run + samer-arc + DrawAsia +\ifPst@WorldMapII@Rivers +(samer-riv.dat) run + samer-riv + DrawRivers + \fi +\ifPst@WorldMapII@Borders +(\psk@WorldMap@Path/samer-bdy.dat) run + samer-bdy + DrawBdy +\fi +\fi +% +\ifPst@WorldMapII@maillage +% meridiens +limiteLongitude neg increment limiteLongitude {% for X + /X exch def + newpath + /Y StartY def + X CoeffX xunit StartY CoeffY yunit moveto +StartY increment 10 div StartY neg { % for Y + /Y exch def + X CoeffX xunit Y CoeffY yunit lineto +} for +gsave +% 11 janvier 2004 +X 0 eq {1 0 0 setrgbcolor}{0.2 setgray} ifelse +% +0.25 setlinewidth +stroke +grestore +} for +% parallèles +StartY increment StartY neg {% for Y + /Y exch def +newpath + /X limiteLongitude neg def + X CoeffX xunit Y CoeffY yunit moveto +limiteLongitude neg increment 10 div limiteLongitude { % for X + /X exch def + X CoeffX xunit Y CoeffY yunit lineto +} for +% 11 janvier 2004 +Y 0 eq {1 0 0 setrgbcolor}{0.2 setgray} ifelse +% +0.25 setlinewidth +stroke +} for +\fi +/DrawCitys { +/CITY exch def +/Rayon exch def +/nbr CITY length def % nombre de villes +0 1 nbr 1 sub { + /compteur exch def + CITY compteur get aload pop + /X exch def /Y exch def + gsave + 1 0 0 setrgbcolor newpath + X CoeffX xunit Y CoeffY yunit + Rayon 0 360 arc closepath fill + grestore +} for +} def +\ifPst@WorldMap@city +% les capitales + (\psk@WorldMap@Path/c-cap.dat) run + 1.5 % rayon du point + citycapitals + DrawCitys +% les autres villes + (\psk@WorldMap@Path/c-sub.dat) run + 0.5 % rayon du point + CitySub +DrawCitys +\fi +\ifPst@WorldMap@capitals +% les capitales + (\psk@WorldMap@Path/c-cap.dat) run + 1.5 + citycapitals + DrawCitys +\fi +}% +\end@ClosedObj +}} +% + +\def\pnodeMap(#1,#2)#3{% hv 2004-05-09 + \pst@killglue + \pnode(! + \VariablesMap + /Y #2 def + /X #1 def + X CoeffX 20 div Y CoeffY 20 div){#3}% +} +% +%------------------- hv 2004-05-08 ---------------------- +\def\psNodeLabelStyle{} +\define@key{psset}{mapCountry}{\edef\psk@WorldMap@mapCountry{#1}} +\setkeys{psset}{mapCountry=all} +\define@key{psset}{nodeWidth}{\edef\psk@WorldMap@nodeWidth{#1}} +\setkeys{psset}{nodeWidth=1mm} +\newpsstyle{psNodeMapStyle}{fillstyle=solid,fillcolor=red} +% +\def\mapput{\@ifnextchar[{\mapput@i}{\mapput@i[90]}} +\def\mapput@i[#1](#2,#3){\@ifnextchar[{\mapput@iii[#1](#2,#3)}{\mapput@ii[#1](#2,#3)}} +\def\mapput@ii[#1](#2,#3)#4{\mapput@iii[#1](#2,#3)[#4]{#4}} +\def\mapput@iii[#1](#2,#3)[#4]#5{% + \@ifnextchar[{\mapput@iv[#1](#2,#3)[#4]#5}{\mapput@iv[#1](#2,#3)[#4]#5[\@empty]}} +\def\mapput@iv[#1](#2,#3)[#4]#5[#6]{{% +% [angle](longitude,lattitude)[node name]{node label}[country] + \def\pst@tempb{all} + \ifx\pst@tempb\psk@WorldMap@mapCountry + \mapput@v[#1](#2,#3)[#4]{#5} + \else + \def\pst@tempb{#6} +% \typeout{Compare \pst@tempb{} with \psk@WorldMap@mapCountry} + \ifx\pst@tempb\psk@WorldMap@mapCountry + \mapput@v[#1](#2,#3)[#4]{#5} + \fi% + \fi% +}} +\def\mapput@v[#1](#2,#3)[#4]#5{{% + \pnodeMap(#2,#3){#4} +% \typeout{Node: #4} + \pst@dima=\psk@WorldMap@nodeWidth + \pscircle[style=psNodeMapStyle](#4){\pst@dima} + \pscircle*(#4){0.5\pst@dima} + \uput{1.2\pst@dima}[#1](#4){\psNodeLabelStyle #5}% +}} +%------------------- hv 2004-05-08 ---------------------- +% +\catcode`\@=\PstAtCode\relax +\endinput |