diff options
author | Karl Berry <karl@freefriends.org> | 2016-12-13 22:22:52 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2016-12-13 22:22:52 +0000 |
commit | 756d56684e3b021e5a8aee5791c53ecbaa07705e (patch) | |
tree | 4d9c8e648f963155115eacddaa50d64c539efef7 /Master/texmf-dist/tex/generic/pst-geo/pst-geo.tex | |
parent | 2e859a485b65e4ae3bc61c2c8e26d5dbe050dbd2 (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.tex | 1504 |
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 |