summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pst-geo/pst-geo.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-12-13 22:22:52 +0000
committerKarl Berry <karl@freefriends.org>2016-12-13 22:22:52 +0000
commit756d56684e3b021e5a8aee5791c53ecbaa07705e (patch)
tree4d9c8e648f963155115eacddaa50d64c539efef7 /Master/texmf-dist/tex/generic/pst-geo/pst-geo.tex
parent2e859a485b65e4ae3bc61c2c8e26d5dbe050dbd2 (diff)
pst-geo (13dec16)
git-svn-id: svn://tug.org/texlive/trunk@42696 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/pst-geo/pst-geo.tex')
-rw-r--r--Master/texmf-dist/tex/generic/pst-geo/pst-geo.tex1504
1 files changed, 1504 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/pst-geo/pst-geo.tex b/Master/texmf-dist/tex/generic/pst-geo/pst-geo.tex
new file mode 100644
index 00000000000..7e7f2ee3bb6
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pst-geo/pst-geo.tex
@@ -0,0 +1,1504 @@
+%%
+%% This is file `pst-geo.tex',
+%%
+%% IMPORTANT NOTICE:
+%%
+%% Package `pst-geo'
+%%
+%% Manuel Luque <Mluque5130@aol.com> (France)
+%% Giuseppe Matarazzo <joematara@hotmail.com> (Italy)
+%% Herbert Voss <hvoss@tug.org> (Germany)
+%%
+%% December 07, 2016
+%%
+%% 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-geo' is a PSTricks package to create geographical objects
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\csname PSTGeo\endcsname
+\let\PSTGeoLoaded\endinput
+
+% Require PSTricks
+\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi
+\ifx\PSTnodesLoaded\endinput\else\input pst-node.tex\fi
+\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey\fi
+%
+\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
+
+
+\pst@addfams{pst-geo}
+%
+\def\fileversion{0.06}
+\def\filedate{2016/12/08}
+\message{`PST-geo' v\fileversion, \filedate\space (ML/HV)}
+%
+\pstheader{pst-geo.pro}
+
+\define@key[psset]{pst-geo}{path}[data]{\def\psk@geo@Path{#1}} % chemin des données
+\define@key[psset]{pst-geo}{level}[1]{\def\psk@geo@level{#1}}
+\define@key[psset]{pst-geo}{type}[1]{\def\psk@geo@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
+\psset{path=data,level=1,type=1}
+\define@key[psset]{pst-geo}{n}[n]{\def\psk@geo@n{#1}}
+\psset{n=1.77245} % sqrt(pi) % pour Collignon
+\define@key[psset]{pst-geo}{limiteL}[180]{\def\psk@geo@limiteL{#1}}
+\psset{limiteL=180} % longitude limite
+\define@key[psset]{pst-geo}{latitude0}[45]{\def\psk@geo@latitudeO{#1}}
+\psset{latitude0=45} % pour Bonne latitude 0
+\define@key[psset]{pst-geo}{longitude0}[0]{\def\psk@geo@longitudeO{#1}}
+\psset{longitude0=0} % pour Bonne longitude 0
+\define@key[psset]{pst-geo}{increment}[10]{\def\psk@geo@increment{#1}}
+\psset{increment=10}
+%
+\define@key[psset]{pst-geo}{MapFillColor}%[{[rgb]{0.99, 0.95, 0.7}}]
+{\pst@getcolor{#1}\psk@geo@Fillcolor} % couleur des continents
+\psset{MapFillColor={[rgb]{0.99, 0.95, 0.7}}}
+\define@key[psset]{pst-geo}{SeaFillColor}%[{[rgb]{0.5, 0.8, 0.8}}]
+{\pst@getcolor{#1}\psk@geo@Seacolor} % sea color
+\psset{SeaFillColor={[rgb]{0.5, 0.8, 0.8}}}
+\define@key[psset]{pst-geo}{LakeFillColor}%[{[rgb]{0.2, 0.2, 0.9}}]
+{\pst@getcolor{#1}\psk@geo@Lakecolor} % lake color
+\psset{LakeFillColor={[rgb]{0.2, 0.2, 0.9}}}
+\define@key[psset]{pst-geo}{RiverFillColor}%[{[rgb]{0, 0, 1}}]
+{\pst@getcolor{#1}\psk@geo@Rivercolor} % river color
+\psset{RiverFillColor={[rgb]{0, 0, 1}}}
+%
+%\define@boolkey[psset]{pst-3dplot}[Pst@]{Debug}[true]{}%
+%
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{capitals}[true]{}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{cities}[true]{}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{rivers}[true]{}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{borders}[true]{}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{maillage}[true]{}
+\psset{cities=false,capitals=false,rivers=false,borders,maillage}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{Fill}[true]{}
+\psset{Fill}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{USA}[true]{}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{Australia}[true]{}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{Mexico}[true]{}
+\psset{USA=false,Australia=false,Mexico=false}
+%
+\define@key[psset]{pst-geo}{increment}[10]{\def\psk@geo@increment{#1}}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{Europe}[true]{}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{Asia}[true]{}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{Africa}[true]{}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{Northamerica}[true]{}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{Southamerica}[true]{}
+\psset{increment=10,Europe,Asia=false,Africa=false,Northamerica=false,Southamerica=false}
+\define@key[psset]{pst-geo}{all}[true]{\psset{increment=10,Europe,Asia,Africa,Northamerica,Southamerica}}
+
+\def\psNodeLabelStyle{}
+\newpsstyle{psNodeMapStyle}{fillstyle=solid,fillcolor=yellow!80,framesep=1pt,linestyle=none,opacity=0.4}
+\define@key[psset]{pst-geo}{mapCountry}[all]{\def\psk@geo@mapCountry{#1}}
+\define@key[psset]{pst-geo}{nodeWidth}[1mm]{\def\psk@geo@nodeWidth{#1}}
+\psset{mapCountry=all,nodeWidth=1mm}
+
+\definecolor{orange}{cmyk}{0,0.61,0.87,0}
+\definecolor{darkgreen}{cmyk}{1,0,1,0.5}
+
+
+\def\geo@variablesMap#1{%
+% 0 2d
+% 1 2dII
+% 2 3d
+% 3 3dII
+ \ifcase #1 % 2d
+ /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@geo@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@geo@latitudeO\space def
+ /L0 \psk@geo@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@geo@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
+ \or % 2dII
+ /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@geo@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@geo@latitudeO\space def
+ /L0 \psk@geo@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@geo@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@geo@level\space def % hv 2004-05-04
+ /increment \psk@geo@increment\space def
+ \or % 3d
+ /RotX \psk@geo@RotX\space def
+ /RotY \psk@geo@RotY\space def
+ /RotZ \psk@geo@RotZ\space def
+ /THETA \psk@geo@Theta\space def
+ /PHI \psk@geo@Phi\space def
+ /Rsphere \psk@geo@Radius\space def
+ /Dobs \psk@geo@Dobs\space def
+ /DScreen \psk@geo@Ecran\space def
+ /xunit {\pst@number\psxunit\space mul} def
+ /yunit {\pst@number\psyunit\space mul} def
+ /runit {\pst@number\psrunit\space mul} def
+ \or
+ /RotX \psk@geo@RotX\space def
+ /RotY \psk@geo@RotY\space def
+ /RotZ \psk@geo@RotZ\space def
+ /THETA \psk@geo@Theta\space def
+ /PHI \psk@geo@Phi\space def
+ /Rsphere \psk@geo@Radius\space def
+ /Dobs \psk@geo@Dobs\space def
+ /DScreen \psk@geo@Ecran\space def
+ \fi % \ifcase
+ /level \psk@geo@level\space def % hv 2004-05-04
+ /step \psk@geo@level\space def % hv 2004-05-04
+}
+\newcount\TypeProjection
+\def\WorldMap{\pst@object{WorldMap}}
+\def\WorldMap@i{%
+% \psset{#1}%
+ \begin@ClosedObj
+ \addto@pscode{
+ \geo@variablesMap{0}
+ (\psk@geo@Path/river.dat) run
+ (\psk@geo@Path/pcoast.dat) run
+ (\psk@geo@Path/pisland.dat) run
+ (\psk@geo@Path/pborder.dat) run
+ (\psk@geo@Path/plake.dat) run
+ (\psk@geo@Path/usa.dat) run
+ (\psk@geo@Path/aus.dat) run
+ (\psk@geo@Path/mexico.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@geo@increment\space def
+ /limiteLongitude \psk@geo@limiteL\space def
+%
+ \ifPst@geo@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 {\psk@geo@Seacolor} def
+% Color setrgbcolor
+ \pst@usecolor\psk@geo@Seacolor 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@geo@Fill closepath gsave Color fill grestore \fi
+ stroke
+ } forall
+ } def
+ \ifPst@geo@borders border \else coasts \fi
+ /Color { \pst@usecolor\psk@geo@Fillcolor } def
+ Draw islands Draw
+ \ifPst@geo@Mexico mexico Draw \fi
+ \ifPst@geo@USA usa Draw \fi
+ \ifPst@geo@Australia australia Draw \fi
+ /Color { \pst@usecolor\psk@geo@Lakecolor } def
+ lake Draw
+ \ifPst@geo@rivers
+ /DrawRivers { { CalculsPoints \pst@usecolor\psk@geo@Rivercolor stroke } forall } def
+ river DrawRivers
+ \fi
+%
+ \ifPst@geo@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
+ 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
+ /DrawCities {
+ /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@geo@cities (\psk@geo@Path/c-cap.dat) run 1.5 % rayon du point
+ citycapitals DrawCities (\psk@geo@Path/c-sub.dat) run 0.5 % rayon du point
+ CitySub DrawCities
+ \fi
+ \ifPst@geo@capitals (\psk@geo@Path/c-cap.dat) run 1.5 citycapitals DrawCities \fi
+ }% end pscode
+ \end@ClosedObj
+}
+%
+\def\pnodeMap(#1,#2)#3{% hv 2004-05-09
+ \pst@killglue
+ \pnode(!
+ \geo@variablesMap{0}
+ /Y #2 def
+ /X #1 def
+ X CoeffX 20 div Y CoeffY 20 div){#3}%
+}
+%
+%------------------- hv 2004-05-08 ----------------------
+%
+%\mapput[90](2.316667,48.85000){Paris}
+%
+\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@geo@mapCountry
+ \mapput@v[#1](#2,#3)[#4]{#5}
+ \else
+ \def\pst@tempb{#6}
+% \typeout{Compare \pst@tempb{} with \psk@geo@mapCountry}
+ \ifx\pst@tempb\psk@geo@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@geo@nodeWidth
+ \pscircle[style=psNodeMapStyle](#4){\pst@dima}
+ \pscircle*(#4){0.5\pst@dima}
+ \uput{1.2\pst@dima}[#1](#4){\psframebox[style=psNodeMapStyle]{\psNodeLabelStyle #5}}%
+}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2DII %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+\newcount\TypeProjection
+\def\WorldMapII{\pst@object{WorldMapII}}
+\def\WorldMapII@i{{%
+ \use@par
+ \begin@ClosedObj
+ \addto@pscode{
+ \geo@variablesMap{1}
+ 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@geo@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@geo@Europe
+ (\psk@geo@Path/europe-cil_II.dat) run
+ europe-cil
+ Draw
+ \ifPst@geo@rivers
+ (\psk@geo@Path/europe-riv_II.dat) run
+ europe-riv
+ DrawRivers
+ \fi
+ \ifPst@geo@borders
+ (\psk@geo@Path/europe-bdy_II.dat) run
+ europe-bdy
+ DrawBdy
+ \fi
+ \fi
+%
+ \ifPst@geo@Africa
+ (\psk@geo@Path/africa-cil_II.dat) run
+ africa-cil
+ Draw
+ \ifPst@geo@rivers
+ (\psk@geo@Path/africa-riv_II.dat) run
+ africa-riv
+ DrawRivers
+ \fi
+ \ifPst@geo@borders
+ (\psk@geo@Path/africa-bdy_II.dat) run
+ africa-bdy
+ DrawBdy
+ \fi
+ \fi
+%
+ \ifPst@geo@Asia
+ (\psk@geo@Path/asia-cil_II.dat) run
+ asia-cil
+ DrawAsia
+ (\psk@geo@Path/asia-isl_II.dat) run
+ asia-isl
+ Draw
+ \ifPst@geo@rivers
+ (\psk@geo@Path/asia-riv_II.dat) run
+ asia-riv
+ DrawRiversAsia
+ \fi
+ \ifPst@geo@borders
+ (\psk@geo@Path/asia-bdy_II.dat) run
+ asia-bdy
+ DrawBdy
+ \fi
+ \fi
+ \ifPst@geo@Northamerica
+ (\psk@geo@Path/northamerica-cil_II.dat) run northamerica-cil Draw
+ \ifPst@geo@rivers
+ (\psk@geo@Path/northamerica-riv_II.dat) run northamerica-riv DrawRivers
+ \fi
+ \ifPst@geo@borders
+ (\psk@geo@Path/northamerica-bdy_II.dat) run
+ (\psk@geo@Path/northamerica-pby_II.dat) run
+ northamerica-bdy
+ DrawBdy
+ northamerica-pby
+ DrawBdy
+ \fi
+ \fi
+ \ifPst@geo@Southamerica
+ (\psk@geo@Path/southamerica-cil_II.dat) run
+ southamerica-cil
+ Draw
+ (\psk@geo@Path/southamerica-arc_II.dat) run
+ southamerica-arc
+ DrawAsia
+ \ifPst@geo@rivers
+ (\psk@geo@Path/southamerica-riv_II.dat) run
+ southamerica-riv
+ DrawRivers
+ \fi
+ \ifPst@geo@borders
+ (\psk@geo@Path/southamerica-bdy_II.dat) run
+ southamerica-bdy
+ DrawBdy
+ \fi
+ \fi
+%
+ \ifPst@geo@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
+ /DrawCities {
+ /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@geo@cities
+% les capitales
+ (\psk@geo@Path/c-cap.dat) run
+ 1.5 % rayon du point
+ citycapitals
+ DrawCities
+% les autres villes
+ (\psk@geo@Path/c-sub.dat) run
+ 0.5 % rayon du point
+ CitySub
+ DrawCities
+ \fi
+ \ifPst@geo@capitals
+% les capitales
+ (\psk@geo@Path/c-cap.dat) run
+ 1.5
+ citycapitals
+ DrawCities
+ \fi
+ }%
+ \end@ClosedObj
+ }\ignorespaces}
+%
+%%============================================ 3d =======================================================
+%
+\define@key[psset]{pst-geo}{RotX}{\def\psk@geo@RotX{#1}} % rotation autour de Ox en degrés
+\define@key[psset]{pst-geo}{RotY}{\def\psk@geo@RotY{#1}} % rotation autour de Oy en degrés
+\define@key[psset]{pst-geo}{RotZ}{\def\psk@geo@RotZ{#1}} % rotation autour de OZ en degrés
+\define@key[psset]{pst-geo}{Radius}{\def\psk@geo@Radius{#1}} % rayon de la sphère
+%
+\define@key[psset]{pst-geo}{THETA}{\def\psk@geo@Theta{#1}}
+\define@key[psset]{pst-geo}{PHI}{\def\psk@geo@Phi{#1}}
+\define@key[psset]{pst-geo}{Dobs}{\def\psk@geo@Dobs{#1}}
+\define@key[psset]{pst-geo}{Decran}{\def\psk@geo@Ecran{#1}}
+\psset[pst-geo]{THETA=0,PHI=45,Dobs=20,Decran=25,RotX=0,RotY=0,RotZ=0,Radius=5}
+%
+\define@key[psset]{pst-geo}{Day}{\def\psk@geo@J{#1}}
+\define@key[psset]{pst-geo}{Month}{\def\psk@geo@M{#1}}
+\define@key[psset]{pst-geo}{Year}{\def\psk@geo@A{#1}}
+\define@key[psset]{pst-geo}{hour}{\def\psk@geo@hour{#1}}
+\psset[pst-geo]{Day=\number\day,Month=\number\month,Year=\number\year,hour=12}
+%
+\define@key[psset]{pst-geo}{gridmapdiv}{\def\psk@geo@mapgriddiv{#1}}
+\define@key[psset]{pst-geo}{longitudeMeridien}{\def\psk@geo@longitudeMeridien{#1}}
+\newdimen\psmeridienwidth
+\define@key[psset]{pst-geo}{meridienwidth}[1pt]{\pssetlength\psmeridienwidth{#1}}
+\define@key[psset]{pst-geo}{meridiencolor}[red]{\pst@getcolor{#1}\psmeridiencolor}
+\psset[pst-geo]{meridiencolor=red,meridienwidth=1pt,longitudeMeridien=0,gridmapdiv=10}
+%
+\define@key[psset]{pst-geo}{latitudeParallel}[0]{\def\psk@geo@latitudeParallel{#1}}
+\newdimen\psparallelwidth
+\define@key[psset]{pst-geo}{parallelwidth}[1pt]{\pssetlength\psparallelwidth{#1}}
+\define@key[psset]{pst-geo}{parallelcolor}{\pst@getcolor{#1}\psparallelcolor}
+\psset[pst-geo]{parallelcolor=red,latitudeParallel=0,parallelwidth=1pt}
+%
+\definecolor{terre}{rgb}{0.99,0.95,0.7}
+\definecolor{mer}{rgb}{0.5,0.8,0.8}
+\definecolor{darkblue}{cmyk}{1,1,0,0.7}
+
+\define@key[psset]{pst-geo}{mapcolor}{\pst@getcolor{#1}\psmapcolor}
+\define@key[psset]{pst-geo}{bordercolor}[black]{\pst@getcolor{#1}\psbordercolor}
+\define@key[psset]{pst-geo}{islandcolor}[black]{\pst@getcolor{#1}\psislandcolor}
+\define@key[psset]{pst-geo}{coastcolor}[black]{\pst@getcolor{#1}\pscoastcolor}
+\psset[pst-geo]{mapcolor=terre,bordercolor=black,islandcolor=black,coastcolor=black}
+\define@key[psset]{pst-geo}{oceancolor}{\pst@getcolor{#1}\psoceancolor}
+\psset[pst-geo]{oceancolor=mer}
+\define@key[psset]{pst-geo}{rivercolor}{\pst@getcolor{#1}\psrivercolor}
+\psset[pst-geo]{rivercolor=blue}
+\define@key[psset]{pst-geo}{wfraczoncolor}{\pst@getcolor{#1}\pswfraczoncolor}
+\psset[pst-geo]{wfraczoncolor=red}
+\define@key[psset]{pst-geo}{wmaglincolor}{\pst@getcolor{#1}\pswmaglincolor}
+\psset[pst-geo]{wmaglincolor=darkblue}
+\define@key[psset]{pst-geo}{ridgecolor}{\pst@getcolor{#1}\psridgecolor}
+\psset[pst-geo]{ridgecolor=red}
+\define@key[psset]{pst-geo}{transfrmcolor}{\pst@getcolor{#1}\pstransfrmcolor}
+\psset[pst-geo]{transfrmcolor=orange}
+\define@key[psset]{pst-geo}{trenchcolor}{\pst@getcolor{#1}\pstrenchcolor}
+\psset[pst-geo]{trenchcolor=darkgreen}
+\define@key[psset]{pst-geo}{gridmapcolor}{\pst@getcolor{#1}\psgridmapcolor}
+\psset[pst-geo]{gridmapcolor=black}
+\define@key[psset]{pst-geo}{circlecolor}{\pst@getcolor{#1}\pscirclecolor}
+\psset[pst-geo]{circlecolor=blue}
+\define@key[psset]{pst-geo}{circlesep}{\def\psk@geo@circlesep{#1}}
+\psset[pst-geo]{circlesep=2} % en degres
+\newdimen\pscirclewidth
+\define@key[psset]{pst-geo}{circlewidth}{\pssetlength\pscirclewidth{#1}}
+\psset[pst-geo]{circlewidth=.5pt}
+\newdimen\psgridmapwidth
+\define@key[psset]{pst-geo}{gridmapwidth}[0.8pt]{\pssetlength\psgridmapwidth{#1}}
+\psset[pst-geo]{gridmapwidth=.8pt}
+\newdimen\psborderwidth
+\define@key[psset]{pst-geo}{borderwidth}[0.8pt]{\pssetlength\psborderwidth{#1}}
+\psset[pst-geo]{borderwidth=.8pt}
+\newdimen\pscoastwidth
+\define@key[psset]{pst-geo}{coastwidth}[0.8pt]{\pssetlength\pscoastwidth{#1}}
+\psset[pst-geo]{coastwidth=.8pt}
+\newdimen\pswfraczonwidth
+\define@key[psset]{pst-geo}{wfraczonwidth}[0.8pt]{\pssetlength\pswfraczonwidth{#1}}
+\psset[pst-geo]{wfraczonwidth=.8pt}
+\newdimen\pswmaglinwidth
+\define@key[psset]{pst-geo}{wmaglinwidth}[0.8pt]{\pssetlength\pswmaglinwidth{#1}}
+\psset[pst-geo]{wmaglinwidth=.8pt}
+\newdimen\psridgewidth
+\define@key[psset]{pst-geo}{ridgewidth}[2pt]{\pssetlength\psridgewidth{#1}}
+\psset[pst-geo]{ridgewidth=2pt}
+%
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{islands}[true]{}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{France}[true]{}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{Germany}[true]{}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{Canada}[true]{}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{lakes}[true]{}
+\psset{islands,France=false,Canada=false,lakes=false,Germany=false}
+%
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{gridmap}[true]{}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{coasts}[true]{}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{wfraczon}[true]{}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{ridge}[true]{}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{wmaglin}[true]{}
+\psset{gridmap,coasts=false,wfraczon=false,ridge=false,wmaglin=false}
+%
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{circles}[true]{}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{visibility}[true]{}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{blueEarth}[true]{}
+\define@boolkey[psset]{pst-geo}[Pst@geo@]{daynight}[true]{}
+\psset{circles,visibility,blueEarth,daynight=false}
+%
+\def\WorldMapThreeD{\pst@object{WorldMapThreeD}}
+\def\WorldMapThreeD@i{%
+\begin@ClosedObj
+\addto@pscode{
+ /increment \psk@geo@mapgriddiv\space def
+ \geo@variablesMap{2}
+ /mapcolor {\pst@usecolor\psmapcolor currentrgbcolor} def
+ /bordercolor {\pst@usecolor\psbordercolor currentrgbcolor} def
+ /coastcolor {\pst@usecolor\pscoastcolor currentrgbcolor} def
+ /islandcolor {\pst@usecolor\psislandcolor currentrgbcolor} def
+ /maillagecolor {\pst@usecolor\psgridmapcolor currentrgbcolor} def
+ /oceancolor {\pst@usecolor\psoceancolor currentrgbcolor} def
+ /rivercolor {\pst@usecolor\psrivercolor currentrgbcolor} def
+ /wfraczoncolor {\pst@usecolor\pswfraczoncolor currentrgbcolor} def
+ /wmaglincolor {\pst@usecolor\pswmaglincolor currentrgbcolor} def
+ /ridgecolor {\pst@usecolor\psridgecolor currentrgbcolor} def
+ /transfrmcolor {\pst@usecolor\pstransfrmcolor currentrgbcolor} def
+ /trenchcolor {\pst@usecolor\pstrenchcolor currentrgbcolor} def
+ /circlecolor {\pst@usecolor\pscirclecolor currentrgbcolor} def
+ /circlewidth {\pst@number\pscirclewidth SLW} def
+ /circlesep \psk@geo@circlesep\space def
+ /maillagewidth {\pst@number\psgridmapwidth SLW} def
+ /borderwidth {\pst@number\psborderwidth SLW} def
+ /coastwidth {\pst@number\pscoastwidth SLW} def
+ /wfraczonwidth {\pst@number\pswfraczonwidth SLW} def
+ /wmaglinwidth {\pst@number\pswmaglinwidth SLW} def
+ /ridgewidth {\pst@number\psridgewidth SLW} def
+ /longitude_meridien \psk@geo@longitudeMeridien\space def
+ /meridienwidth {\pst@number\psmeridienwidth SLW} def
+ /meridiencolor {\pst@usecolor\psmeridiencolor currentrgbcolor} def
+ /latitude_parallel \psk@geo@latitudeParallel\space def
+ /parallelwidth {\pst@number\psparallelwidth SLW} def
+ /parallelcolor {\pst@usecolor\psparallelcolor currentrgbcolor} def
+ /year \psk@geo@A\space def
+ /month \psk@geo@M\space def
+ /day \psk@geo@J\space def
+ month 3 lt {/month month 12 add def /year year 1 sub def} if
+ /AA year 100 div truncate def
+ /BB 2 AA sub AA 4 div truncate add def
+ /CC 365.25 year mul truncate def
+ /DD 30.6001 month 1 add mul truncate def
+ /julien BB CC add DD add day add 1720994.5 add def
+ /hour \psk@geo@hour\space def
+ /jours julien 2454367 sub def
+ /AngleRayonsSoleil latitude_parallel 23.5 sin 360 jours mul 365.25 div sin mul arccos sub def
+ /u1 0 def /u2 AngleRayonsSoleil cos def /u3 AngleRayonsSoleil sin def
+% /Julien jd hour 24 div add def
+ %
+ 1 setlinejoin
+ 0 0 translate
+ /pst@fill { \psk@opacityalpha .setopacityalpha fill } def
+ tx@geoDict begin
+ MatriceTransformationZXY
+%
+ /RsphereScreen Rsphere DScreen mul Dobs div
+ 1 Rsphere dup mul Dobs dup mul div sub sqrt div runit def
+%
+/GrandCercle {
+ % cercle vu par l'observateur
+ 0 0 RsphereScreen 0 360 arc
+ closepath
+} def
+%
+\ifPst@geo@visibility
+ /condition { 0 ge } def
+\else
+ /condition { 0 le } def
+\fi
+%
+\ifPst@geo@daynight
+ the_night
+\fi
+%
+\ifPst@geo@blueEarth
+ gsave
+ newpath
+ oceancolor
+ GrandCercle
+ pst@fill % fill
+ grestore
+\fi
+%
+\ifPst@geo@circles
+gsave
+ oceans_seas_hatched
+grestore
+\fi
+%
+\ifPst@geo@borders
+ (\psk@geo@Path/pborder.dat) run
+gsave
+GrandCercle
+clip
+border dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ closepath
+ gsave
+ mapcolor
+ pst@fill % fill
+ grestore
+ borderwidth
+ bordercolor
+ stroke
+ }forall
+grestore
+\fi
+%
+\ifPst@geo@islands
+ (\psk@geo@Path/pisland.dat) run
+gsave
+GrandCercle
+clip
+islands dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ closepath
+ gsave
+ mapcolor
+ pst@fill % fill
+ grestore
+ borderwidth
+ islandcolor
+ stroke
+ }forall
+grestore
+\fi
+%
+\ifPst@geo@France
+ (\psk@geo@Path/france.dat) run
+gsave
+GrandCercle
+clip
+france dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ closepath
+ gsave
+ mapcolor
+ pst@fill % fill
+ grestore
+ borderwidth
+ bordercolor
+ stroke
+ }forall
+grestore
+\fi
+%
+\ifPst@geo@Germany
+ (\psk@geo@Path/germany.dat) run
+ gsave
+ GrandCercle
+ clip
+ germany dup /REGION exch def
+ CompteurRegions
+ {CalculsPointsRegion
+ closepath
+ gsave
+ mapcolor
+ pst@fill % fill
+ grestore
+ borderwidth
+ bordercolor
+ stroke
+ } forall
+grestore
+\fi
+%
+\ifPst@geo@lakes
+ (\psk@geo@Path/plake.dat) run
+gsave
+GrandCercle
+clip
+lake dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ closepath
+ gsave
+ oceancolor
+ pst@fill % fill
+ grestore
+% borderwidth
+% bordercolor
+0 0 1 setrgbcolor
+ stroke
+ }forall
+grestore
+\fi
+%
+\ifPst@geo@coasts
+ (\psk@geo@Path/pcoast.dat) run
+gsave
+GrandCercle
+clip
+coasts dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ coastwidth
+ coastcolor
+ stroke
+ }forall
+grestore
+\fi
+%
+\ifPst@geo@USA
+ (\psk@geo@Path/usa.dat) run
+gsave
+GrandCercle
+clip
+usa dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ closepath
+ gsave
+ mapcolor
+ pst@fill % fill
+ grestore
+ borderwidth
+ bordercolor
+ stroke
+ }forall
+grestore
+\fi
+%
+\ifPst@geo@Mexico
+ (\psk@geo@Path/mex.dat) run
+gsave
+GrandCercle
+clip
+mexico dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ closepath
+ gsave
+ mapcolor
+ pst@fill % fill
+ grestore
+ borderwidth
+ bordercolor
+ stroke
+ }forall
+grestore
+\fi
+%
+\ifPst@geo@Australia
+ (\psk@geo@Path/aus.dat) run
+gsave
+GrandCercle
+clip
+australia dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ closepath
+ gsave
+ mapcolor
+ pst@fill % fill
+ grestore
+ borderwidth
+ bordercolor
+ stroke
+ }forall
+grestore
+\fi
+%
+\ifPst@geo@Canada
+ (\psk@geo@Path/canada.dat) run
+gsave
+GrandCercle
+clip
+canada dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ closepath
+ gsave
+ mapcolor
+ pst@fill % fill
+ grestore
+ borderwidth
+ bordercolor
+ stroke
+ }forall
+grestore
+\fi
+%
+\ifPst@geo@wfraczon
+ (\psk@geo@Path/wfraczon.dat) run
+GrandCercle
+clip
+wfraczon dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ wfraczoncolor
+ wfraczonwidth
+ stroke}forall
+\fi
+%
+\ifPst@geo@wmaglin
+ (\psk@geo@Path/wmaglin.dat) run
+GrandCercle
+clip
+wmaglin dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ wmaglincolor
+ wmaglinwidth
+ stroke}forall
+\fi
+%
+\ifPst@geo@ridge
+ (\psk@geo@Path/ridge.dat) run
+gsave
+GrandCercle
+clip
+ridge dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ ridgecolor
+ ridgewidth
+ stroke}forall
+grestore
+ (\psk@geo@Path/transfrm.dat) run
+gsave
+GrandCercle
+clip
+transfrm dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ transfrmcolor
+ ridgewidth
+ stroke}forall
+grestore
+ (\psk@geo@Path/trench.dat) run
+gsave
+GrandCercle
+clip
+trench dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ trenchcolor
+ ridgewidth
+ stroke}forall
+grestore
+\fi
+%
+\ifPst@geo@rivers
+ (\psk@geo@Path/river.dat) run
+GrandCercle
+clip
+river dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ rivercolor
+ stroke}forall
+\fi
+%
+\ifPst@geo@cities
+% les capitales
+ (\psk@geo@Path/c-cap.dat) run
+ 1.5
+ citycapitals
+ DrawCities
+% les autres villes
+ (\psk@geo@Path/c-sub.dat) run
+ 0.5
+ CitySub
+DrawCities
+\fi
+\ifPst@geo@capitals
+% les capitales
+ (\psk@geo@Path/c-cap.dat) run
+ 2
+ citycapitals
+ DrawCities
+\fi
+%
+\ifPst@geo@gridmap
+ MaillageSphere
+\fi
+end
+}%
+\end@ClosedObj}
+% placer une ville en particulier
+% par sa longitude et sa latitude en degrés
+% si la ville n'est pas visible
+% elle est rejetée hors de l'écran
+\def\pnodeMapIIID{\pst@object{pnodeMapIIID}}
+\def\pnodeMapIIID@i(#1,#2)#3{%
+ \begin@SpecialObj
+ \pnode(!
+ \geo@variablesMap{2}
+ tx@geoDict begin
+ MatriceTransformationZXY
+ /Xpoint {#2 cos #1 cos mul Rsphere mul} def
+ /Ypoint {#2 cos #1 sin mul Rsphere mul} def
+ /Zpoint {#2 sin Rsphere mul } def
+ CalculsPointsAfterTransformations
+% CalcCoordinates
+% /YcoorCity exch def /XcoorCity exch def
+% Test
+% PS 0 ge %
+% {XcoorCity YcoorCity }
+% {/XcoorCity 1000 def /YcoorCity 1000 def}
+% ifelse
+formulesTroisD
+ Xi Yi end){#3}%
+ \end@SpecialObj%
+ \ignorespaces}%
+%
+%
+\def\mapputIIID{\@ifnextchar[{\mapputIIID@i}{\mapputIIID@i[90]}}
+\def\mapputIIID@i[#1](#2,#3){\@ifnextchar[{\mapputIIID@iii[#1](#2,#3)}{\mapputIIID@ii[#1](#2,#3)}}
+\def\mapputIIID@ii[#1](#2,#3)#4{\mapputIIID@iii[#1](#2,#3)[#4]{#4}}
+\def\mapputIIID@iii[#1](#2,#3)[#4]#5{%
+ \@ifnextchar[{\mapputIIID@iv[#1](#2,#3)[#4]#5}{\mapputIIID@iv[#1](#2,#3)[#4]#5[\@empty]}}
+\def\mapputIIID@iv[#1](#2,#3)[#4]#5[#6]{{%
+% [angle](longitude,lattitude)[node name]{node label}[country]
+ \def\pst@tempb{all}
+ \ifx\pst@tempb\psk@geo@mapCountry
+ \mapputIIID@v[#1](#2,#3)[#4]{#5}%
+ \else
+ \def\pst@tempb{#6}%
+% \typeout{Compare \pst@tempb{} with \psk@geo@mapCountry}
+ \ifx\pst@tempb\psk@geo@mapCountry
+ \mapputIIID@v[#1](#2,#3)[#4]{#5}
+ \fi%
+ \fi%
+}}
+\def\mapputIIID@v[#1](#2,#3)[#4]#5{%
+ \pnodeMapIIID(#2,#3){#4}
+ \pst@dima=\psk@geo@nodeWidth
+ \pscircle[style=psNodeMapStyle](#4){\pst@dima}
+ \pscircle*(#4){0.5\pst@dima}
+ \ifx\relax#5\relax\else
+ \uput{1.2\pst@dima}[#1](#4){\psframebox[style=psNodeMapStyle]{#5}}%
+ \fi}
+%
+% dessiner un méridien de longitude donnée
+% longitude en degrés
+\def\psmeridien{\pst@object{psmeridien}}
+\def\psmeridien@i#1{%
+ \pst@killglue
+ \begingroup
+ \begin@SpecialObj%
+ \addto@pscode{%
+ \geo@variablesMap{2}
+ /longitude_meridien #1 def
+ /meridienwidth {\pst@number\psmeridienwidth SLW} def
+ /meridiencolor {\pst@usecolor\psmeridiencolor currentrgbcolor} def
+ tx@geoDict begin
+ MatriceTransformationZXY
+ \ifPst@geo@visibility
+ /condition { 0 ge } def
+ \else
+ /condition { 0 le } def
+ \fi
+ meridien
+ end}%
+ \end@SpecialObj%
+ \endgroup%
+ \ignorespaces%
+}
+%
+% dessiner un cercle parallèle à l'équateur de latitude donnée
+% latitude en degrés
+\def\psparallel{\pst@object{psparallel}}
+\def\psparallel@i#1{%
+ \pst@killglue
+ \begingroup
+ \begin@SpecialObj%
+ \addto@pscode{%
+ \geo@variablesMap{2}
+ /latitude_parallel #1 def
+ /parallelwidth {\pst@number\psparallelwidth SLW} def
+ /parallelcolor {\pst@usecolor\psparallelcolor currentrgbcolor} def
+ tx@geoDict begin
+ MatriceTransformationZXY
+ \ifPst@geo@visibility
+ /condition { 0 ge } def
+ \else
+ /condition { 0 le } def
+ \fi
+ Parallel
+ parallelwidth
+ parallelcolor
+ stroke
+ end}%
+ \end@SpecialObj%
+ \endgroup%
+ \ignorespaces%
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% le dessin du globe tellure
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\newpsstyle{Globe}{circles=true}
+\newpsstyle{night}{fillstyle=solid,fillcolor=black,opacity=0.8}
+\define@key[psset]{pst-geo}{styleGlobe}{\def\psk@styleGlobe{#1}}
+\define@key[psset]{pst-geo}{styleNight}{\def\psk@styleNight{#1}}
+\psset[pst-geo]{styleGlobe=Globe,styleNight=night}
+
+\def\psGlobeTellure{\pst@object{psGlobeTellure}}
+\def\psGlobeTellure@i(#1,#2)#3{% longitude, latitude et nom de la ville
+ \begin@SpecialObj%
+ \pnode(!/ux 0 def /uy 90 #2 sub sin def /uz 90 #2 sub cos def 0 0){ttt}%
+ \psset{THETA=0,PHI=0}%
+ {\psset{RotX=#2 90 sub,RotZ=90 #1 add}
+ \WorldMapThreeD[style=\psk@styleGlobe,daynight=false]%
+ \mapputIIID(#1,#2){#3}}%
+ \WorldMapThreeD[style=\psk@styleNight,daynight=true,circles=false,blueEarth=false,
+ borders=false,islands=false,
+ rivers=false,lakes=false,
+ gridmap=false,latitudeParallel=#2]%
+ \psframe*(! -3 \psk@geo@Radius\space neg -1.5 add)(!3 \psk@geo@Radius\space neg -0.5 add)
+ \rput(! 0 \psk@geo@Radius\space neg -1 add){\white\psk@geo@hour h le \psk@geo@J/\psk@geo@M/\psk@geo@A}
+ \end@SpecialObj%
+ \ignorespaces}%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% épicentre d'un tremblement de terre
+% Earthquake Epicenters
+%
+\define@key[psset]{pst-geo}{waves}{\edef\psk@geo@waves{#1}}
+\psset{waves=3} % nombre de cercles concentriques
+\define@key[psset]{pst-geo}{Rmax}{\edef\psk@geo@Rmax{#1}}
+\psset{Rmax=1500} % rayon maximum du séisme en km
+
+\def\psepicenter{\pst@object{psepicenter}}
+\def\psepicenter@i(#1,#2)#3{%
+ \begin@ClosedObj%
+ \addto@pscode{
+ \geo@variablesMap{2}
+ /longitude #1 def
+ /latitude #2 def
+ /nbre \psk@geo@waves\space def
+ /dphi \psk@geo@Rmax\space 0.008983 mul def
+ /circlecolor {\pst@usecolor\pscirclecolor currentrgbcolor} def
+ /circlewidth {\pst@number\pscirclewidth SLW} def
+ tx@geoDict begin
+ circlecolor
+ circlewidth
+ nbre dphi longitude latitude
+ ondes
+ end }%
+ \ifx\relax#3\relax\else\mapputIIID(#1,#2){#3}\fi%
+ \end@ClosedObj%
+ \ignorespaces}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3dII %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\def\WorldMapThreeDII{\pst@object{WorldMapThreeDII}}
+\def\WorldMapThreeDII@i{%
+ \addbefore@par{fillstyle=solid}
+ \begin@ClosedObj
+ \addto@pscode{
+ \geo@variablesMap{3}
+ 1 setlinejoin
+ 0 0 translate
+ /increment \psk@geo@increment\space def
+ /xunit {\pst@number\psxunit\space mul}def
+ /yunit {\pst@number\psyunit\space mul}def
+ /runit {\pst@number\psrunit\space mul}def
+ /pst@fill { \psk@opacityalpha .setopacityalpha fill } def
+ gsave
+ newpath
+ 0.7 0.9 0.9 setrgbcolor
+% cercle vu par l'observateur
+ /RsphereScreen Rsphere DScreen mul Dobs div
+ 1 Rsphere dup mul Dobs dup mul div sub sqrt div runit def
+ 0 0 RsphereScreen 0 360 arc
+ closepath
+ \ifx\psk@fillstyle\relax\else fill \fi
+ grestore
+ /condition {PSfacette 0 le} def
+ /departPhi -90 def
+ tx@geoIIDict begin
+ MatriceTransformation
+ /Draw {
+ { CalculsPoints
+ stroke
+ } forall
+ }def
+%
+ /DrawRivers {
+ { CalculsPoints
+ gsave
+ 0 0 1 setrgbcolor
+ CLW 0.25 mul
+ stroke
+ grestore
+ } forall
+ } def
+%
+ /DrawBdy {
+ { CalculsPoints
+ gsave
+ 1 0 0 setrgbcolor
+ stroke
+ grestore
+ } forall
+ } def
+\ifPst@geo@maillage MaillageSphereII \fi
+\ifPst@geo@Europe
+ (\psk@geo@Path/europe-cil_II.dat) run
+ europe-cil
+ Draw
+ \ifPst@geo@rivers
+(\psk@geo@Path/europe-riv_II.dat) run
+ europe-riv
+ DrawRivers
+ \fi
+ \ifPst@geo@borders
+(\psk@geo@Path/europe-bdy_II.dat) run
+ europe-bdy
+ DrawBdy
+ \fi
+\fi
+%
+\ifPst@geo@Africa
+ (\psk@geo@Path/africa-cil_II.dat) run
+ africa-cil
+ Draw
+ \ifPst@geo@rivers
+ (\psk@geo@Path/africa-riv_II.dat) run
+ africa-riv
+ DrawRivers
+ \fi
+ \ifPst@geo@borders
+ (\psk@geo@Path/africa-bdy_II.dat) run
+ africa-bdy
+ DrawBdy
+ \fi
+\fi
+%
+\ifPst@geo@Asia
+ (\psk@geo@Path/asia-cil_II.dat) run
+ asia-cil
+ Draw
+ \ifPst@geo@rivers
+ (\psk@geo@Path/asia-riv_II.dat) run
+ asia-riv
+ DrawRivers
+ \fi
+ \ifPst@geo@borders
+ (\psk@geo@Path/asia-bdy_II.dat) run
+ asia-bdy
+ DrawBdy
+ \fi
+\fi
+%
+\ifPst@geo@Northamerica
+(\psk@geo@Path/northamerica-cil_II.dat) run
+ northamerica-cil
+ Draw
+\ifPst@geo@rivers
+(\psk@geo@Path/northamerica-riv_II.dat) run
+ northamerica-riv
+ DrawRivers
+ \fi
+\ifPst@geo@borders
+(\psk@geo@Path/northamerica-bdy_II.dat) run
+(\psk@geo@Path/northamerica-pby_II.dat) run
+ northamerica-bdy DrawBdy northamerica-pby DrawBdy
+\fi
+\fi
+%
+\ifPst@geo@Southamerica
+(\psk@geo@Path/southamerica-cil_II.dat) run
+ southamerica-cil
+ Draw
+\ifPst@geo@rivers
+(\psk@geo@Path/southamerica-riv_II.dat) run
+ southamerica-riv
+ DrawRivers
+ \fi
+\ifPst@geo@borders
+(\psk@geo@Path/southamerica-bdy_II.dat) run
+ southamerica-bdy
+ DrawBdy
+\fi
+\fi
+%
+\ifPst@geo@cities
+% les capitales
+ (\psk@geo@Path/c-cap.dat) run
+ 1.5 % rayon du point
+ citycapitals
+ DrawCities
+% les autres villes
+ (\psk@geo@Path/c-sub.dat) run
+ 0.5 % rayon du point
+ CitySub
+DrawCities
+\fi
+\ifPst@geo@capitals
+% les capitales
+ (\psk@geo@Path/citycapitals.dat) run
+ 1.5
+ citycapitals
+ DrawCities
+\fi
+end
+}%
+\end@ClosedObj
+\ignorespaces
+}
+%
+
+%
+\catcode`\@=\PstAtCode\relax
+\endinput