summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/pst-geo/pst-map2d.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/generic/pst-geo/pst-map2d.tex')
-rw-r--r--Master/texmf-dist/doc/generic/pst-geo/pst-map2d.tex406
1 files changed, 406 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-geo/pst-map2d.tex b/Master/texmf-dist/doc/generic/pst-geo/pst-map2d.tex
new file mode 100644
index 00000000000..9825d8376ad
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-geo/pst-map2d.tex
@@ -0,0 +1,406 @@
+%%
+%% This is file `pst-map2d.tex',
+%%
+%% IMPORTANT NOTICE:
+%%
+%% Package `pst-map2d.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-map2d' is a PSTricks package to create geographical objects
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\fileversion{1.05}
+\def\filedate{2004/05/10}
+
+\message{`PST-map2d' v\fileversion, \filedate\space (ML/GM/HV)}
+
+\csname PSTMaptwod\endcsname
+\let\PSTMaptwodLoaded\endinput
+
+% Require PSTricks
+\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi
+\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}
+%\openin1=chemin.txt
+%\read1 to \psk@WorldMap@Path
+%
+\define@key{psset}{level}{\edef\psk@WorldMap@level{#1}}
+\setkeys{psset}{level=1}
+%
+\define@key{psset}{type}{\edef\psk@WorldMap@type{#1}}
+\setkeys{psset}{type=1}
+% 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}{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
+%
+\define@key{psset}{increment}{\edef\psk@WorldMap@increment{#1}}
+\setkeys{psset}{increment=10}
+%
+\define@key{psset}{MapFillColor}{\edef\psk@WorldMap@Fillcolor{#1}} % couleur des continents
+\setkeys{psset}{MapFillColor= 0.99 0.95 0.7 }
+%
+\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@WorldMap@Rivers
+\define@key{psset}{rivers}[true]{\@nameuse{Pst@WorldMap@Rivers#1}}
+\setkeys{psset}{rivers=true}
+%
+\newif\ifPst@WorldMap@Borders
+\define@key{psset}{borders}[true]{\@nameuse{Pst@WorldMap@Borders#1}}
+\setkeys{psset}{borders=false}
+%
+\newif\ifPst@WorldMap@maillage
+\define@key{psset}{maillage}[true]{\@nameuse{Pst@WorldMap@maillage#1}}
+\setkeys{psset}{maillage=true}
+%
+\newif\ifPst@WorldMap@Fill
+\define@key{psset}{Fill}[true]{\@nameuse{Pst@WorldMap@Fill#1}}
+\setkeys{psset}{Fill=true}
+%
+\newif\ifPst@WorldMap@USA
+\define@key{psset}{USA}[false]{\@nameuse{Pst@WorldMap@USA#1}}
+\setkeys{psset}{USA=false}
+%
+\newif\ifPst@WorldMap@AUS
+\define@key{psset}{AUS}[false]{\@nameuse{Pst@WorldMap@AUS#1}}
+\setkeys{psset}{AUS=false}
+%
+\newif\ifPst@WorldMap@MEX
+\define@key{psset}{MEX}[false]{\@nameuse{Pst@WorldMap@MEX#1}}
+\setkeys{psset}{MEX=false}
+%
+\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@WorldMap@type\or
+ /CoeffY {Coeff_mercatorY} def
+ /CoeffX {Coeff_mercatorX} def
+ /StartY -85 def
+ \or
+ /CoeffY {Coeff_simpleY} def
+ /CoeffX {Coeff_simpleX} def
+ /StartY -90 def
+ \or
+ /CoeffY {Coeff_lambertY} def
+ /CoeffX {Coeff_lambertX} def
+ /StartY -90 def
+ \or
+ /CoeffY {Coeff_sanson_flamsteedY} def
+ /CoeffX {Coeff_sanson_flamsteedX} def
+ /StartY -90 def
+ \or
+ /CoeffY {Coeff_cylindricalY} def
+ /CoeffX {Coeff_cylindricalX} def
+ /StartY -85 def
+ \or
+ /CoeffY {Coeff_babinetY} def
+ /CoeffX {Coeff_babinetX} def
+ /StartY -90 def
+ \or
+ /CoeffY {Coeff_collignonY} def
+ /CoeffX {Coeff_collignonX} def
+ /StartY -90 def
+ \or
+ /CoeffY {Coeff_BonneY} def
+ /CoeffX {Coeff_BonneX} def
+ /StartY -90 def
+ \fi%
+ /step \psk@WorldMap@level\space def % hv 2004-05-04
+}
+\newcount\TypeProjection
+\def\WorldMap{\pst@object{WorldMap}}
+\def\WorldMap@i{\@ifnextchar[{\WorldMap@do}{\WorldMap@do[]}}
+\def\WorldMap@do[#1]{{%
+ \setkeys{psset}{#1}%
+ \begin@ClosedObj
+ \addto@pscode{%
+ \VariablesMap
+ (\psk@WorldMap@Path/river.dat) run
+ (\psk@WorldMap@Path/pcoast.dat) run
+ (\psk@WorldMap@Path/pisland.dat) run
+ (\psk@WorldMap@Path/pborder.dat) run
+ (\psk@WorldMap@Path/plake.dat) run
+ (\psk@WorldMap@Path/usa.dat) run
+ (\psk@WorldMap@Path/aus.dat) run
+ (\psk@WorldMap@Path/mex.dat) run
+ 1 setlinejoin
+ 0 0 translate
+ /xunit {\pst@number\psxunit\space mul 20 div }def
+ /yunit {\pst@number\psyunit\space mul 20 div }def
+ /increment \psk@WorldMap@increment\space def
+ /limiteLongitude \psk@WorldMap@limiteL\space def
+%
+ \ifPst@WorldMap@Fill
+ gsave
+ newpath
+ /X limiteLongitude neg def
+ /Y StartY def
+ X CoeffX xunit Y CoeffY yunit moveto
+ StartY 2 StartY neg {%
+ /Y exch def
+ X CoeffX xunit Y CoeffY yunit lineto
+ } for
+ /X limiteLongitude def
+ StartY neg -2 StartY {
+ /Y exch def
+ X CoeffX xunit Y CoeffY yunit lineto
+ } for
+ closepath
+ /Color {0.5 0.8 0.8} def
+ Color setrgbcolor
+ fill
+ grestore
+ \fi
+ /CalculsPoints {
+ /region exch def
+ newpath
+ /nbr region length def % nombre de régions
+ region 0 get aload pop
+ /Y exch def /X exch def
+ X CoeffX xunit Y CoeffY yunit moveto
+ /ncount 0 def % hv 2004-05-04
+ 0 1 nbr 1 sub {
+ /ncount ncount 1 add def % hv 2004-05-04
+ region exch get aload pop
+ ncount step mod 0 eq nbr ncount sub 0 lt or { % hv 2004-05-04
+ /Y exch def /X exch def
+ X CoeffX xunit Y CoeffY yunit lineto
+ }{ pop pop } ifelse % hv 2004-05-04
+ } for
+ } def
+%
+ /Draw { {
+ CalculsPoints
+ \ifPst@WorldMap@Fill
+ closepath
+% Colour in earth's surfaces
+ gsave
+ Color setrgbcolor
+ fill
+ grestore
+ \fi
+ stroke
+ } forall
+ } def
+\ifPst@WorldMap@Borders
+ border
+\else
+ coasts
+\fi
+%/Color {0.5 0.8 0.5} def
+/Color {\psk@WorldMap@Fillcolor} def
+ Draw
+islands
+ Draw
+\ifPst@WorldMap@MEX
+mexico
+ Draw
+\fi
+\ifPst@WorldMap@USA
+usa
+ Draw
+\fi
+\ifPst@WorldMap@AUS
+australia
+ Draw
+\fi
+/Color {0.5 0.8 0.8} def
+lake
+ Draw
+% les rivières
+\ifPst@WorldMap@Rivers
+/DrawRivers {
+ {
+CalculsPoints
+0 0 1 setrgbcolor
+stroke
+} forall
+}def
+river
+DrawRivers
+\fi
+%
+\ifPst@WorldMap@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