summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pst-geo/pst-map3d.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2008-07-23 21:59:09 +0000
committerKarl Berry <karl@freefriends.org>2008-07-23 21:59:09 +0000
commit25e2d07e6e4346cd52777d58bd2bf885c418e534 (patch)
tree9ea4cb5f37c7b01c07eca04a7ad155825b2cda42 /Master/texmf-dist/tex/generic/pst-geo/pst-map3d.tex
parent286bd513b7334270cf07920eab4fd9c606a4970c (diff)
pst-geo update (23jul08)
git-svn-id: svn://tug.org/texlive/trunk@9729 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/pst-geo/pst-map3d.tex')
-rw-r--r--Master/texmf-dist/tex/generic/pst-geo/pst-map3d.tex765
1 files changed, 687 insertions, 78 deletions
diff --git a/Master/texmf-dist/tex/generic/pst-geo/pst-map3d.tex b/Master/texmf-dist/tex/generic/pst-geo/pst-map3d.tex
index 6bfecd2f11a..7f0fcdd5008 100644
--- a/Master/texmf-dist/tex/generic/pst-geo/pst-map3d.tex
+++ b/Master/texmf-dist/tex/generic/pst-geo/pst-map3d.tex
@@ -7,40 +7,43 @@
%%
%% Manuel Luque <Mluque5130@aol.com> (France)
%% Giuseppe Matarazzo <joematara@hotmail.com> (Italy)
-%% Herbert Voss <voss _at_ perce.de> (Germany)
%%
-%% May 09, 2004
+%% May 29, 2008
%%
%% 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-map3d' is a PSTricks package to create geographical objects
+%% `pst-map2dII' is a PSTricks package to create geographical objects
%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% nouvelle version de pst-map3d %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname PSTMapThreeD\endcsname
\let\PSTMapThreeDLoaded\endinput
% Require PSTricks
\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi
-\ifx\PSTnodesLoaded\endinput\else\input pst-node.tex\fi % hv 2004-05-09
+\ifx\PSTnodesLoaded\endinput\else\input pst-node.tex\fi
\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey.tex \fi
-\def\fileversion{1.04}
-\def\filedate{2008/04/05}
+\def\fileversion{2.0}
+\def\filedate{2008/03/05}
-\message{`PST-map3d v\fileversion, \filedate\space (ML/GM/HV)}
+\message{`PST-map3d v\fileversion, \filedate}
\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
\pst@addfams{pst-map3d}
%
+\definecolor{orange}{cmyk}{0,0.61,0.87,0}
+\definecolor{darkgreen}{cmyk}{1,0,1,0.5}
\SpecialCoor
%
\define@key[psset]{pst-map3d}{path}{\edef\psk@WorldMap@Path{#1}} % chemin des données
\psset{path=data}
%
-\pstheader{map3d.pro}
+\pstheader{pst-map3d.pro}
\define@key[psset]{pst-map3d}{RotX}{\edef\psk@TroisD@RotX{#1}} % rotation autour de Ox en degrés
\define@key[psset]{pst-map3d}{RotY}{\edef\psk@TroisD@RotY{#1}} % rotation autour de Oy en degrés
\define@key[psset]{pst-map3d}{RotZ}{\edef\psk@TroisD@RotZ{#1}} % rotation autour de OZ en degrés
@@ -54,19 +57,127 @@
%
\psset{RotX=0,RotY=0,RotZ=0,Radius=5}
%
-\define@key[psset]{pst-map3d}{increment}{\edef\psk@WorldMap@increment{#1}}
-\psset{increment=10}
+\define@key[psset]{pst-map3d}{Day}{\def\psk@WorldMap@J{#1}}
+\define@key[psset]{pst-map3d}{Month}{\def\psk@WorldMap@M{#1}}
+\define@key[psset]{pst-map3d}{Year}{\def\psk@WorldMap@A{#1}}
+\psset{Day=\number\day,Month=\number\month,Year=\number\year}
+\define@key[psset]{pst-map3d}{hour}{\edef\psk@WorldMap@hour{#1}}
+\psset{hour=12} % en heures
%
-\define@key[psset]{pst-map3d}{maillageColor}{\edef\psk@WorldMap@maillageColor{#1}}
-\psset{maillageColor= 0.5 0.5 0.5 }
+\define@key[psset]{pst-map3d}{gridmapdiv}{\edef\psk@WorldMap@mapgriddiv{#1}}
+\psset{gridmapdiv=10}
%
-\define@key[psset]{pst-map3d}{MapFillColor}{\edef\psk@WorldMap@Fillcolor{#1}} % couleur des continents
-\psset{MapFillColor= 0.99 0.95 0.7 }
+\define@key[psset]{pst-map3d}{longitudeMeridien}{\edef\psk@WorldMap@longitudeMeridien{#1}}
+\psset{longitudeMeridien=0}
%
-\define@key[psset]{pst-map3d}{level}{\edef\psk@WorldMap@level{#1}}
-\psset{level=1}
+\newdimen\psmeridienwidth
+\def\psset@meridienwidth#1{\pssetlength\psmeridienwidth{#1}}
+\psset@meridienwidth{1pt}
%
-\def\geo@variablesIIID{%
+\define@key[psset]{pst-map3d}{meridiencolor}{%
+\pst@getcolor{#1}\psmeridiencolor}
+\psset[pst-map3d]{meridiencolor=red}
+%
+\define@key[psset]{pst-map3d}{latitudeParallel}{\edef\psk@WorldMap@latitudeParallel{#1}}
+\psset{latitudeParallel=0}
+%
+\newdimen\psparallelwidth
+\def\psset@parallelwidth#1{\pssetlength\psparallelwidth{#1}}
+\psset@parallelwidth{1pt}
+%
+\define@key[psset]{pst-map3d}{parallelcolor}{%
+\pst@getcolor{#1}\psparallelcolor}
+\psset[pst-map3d]{parallelcolor=red}
+%
+
+\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-map3d}{mapcolor}{%
+\pst@getcolor{#1}\psmapcolor}
+\psset[pst-map3d]{mapcolor=terre}
+
+\define@key[psset]{pst-map3d}{bordercolor}{%
+\pst@getcolor{#1}\psbordercolor}
+\psset[pst-map3d]{bordercolor=black}
+
+\define@key[psset]{pst-map3d}{islandcolor}{%
+\pst@getcolor{#1}\psislandcolor}
+\psset[pst-map3d]{islandcolor=black}
+
+\define@key[psset]{pst-map3d}{coastcolor}{%
+\pst@getcolor{#1}\pscoastcolor}
+\psset[pst-map3d]{coastcolor=black}
+
+\define@key[psset]{pst-map3d}{oceancolor}{%
+\pst@getcolor{#1}\psoceancolor}
+\psset[pst-map3d]{oceancolor=mer}
+
+\define@key[psset]{pst-map3d}{rivercolor}{%
+\pst@getcolor{#1}\psrivercolor}
+\psset[pst-map3d]{rivercolor=blue}
+
+\define@key[psset]{pst-map3d}{wfraczoncolor}{%
+\pst@getcolor{#1}\pswfraczoncolor}
+\psset[pst-map3d]{wfraczoncolor=red}
+
+\define@key[psset]{pst-map3d}{wmaglincolor}{%
+\pst@getcolor{#1}\pswmaglincolor}
+\psset[pst-map3d]{wmaglincolor=darkblue}
+
+\define@key[psset]{pst-map3d}{ridgecolor}{%
+\pst@getcolor{#1}\psridgecolor}
+\psset[pst-map3d]{ridgecolor=red}
+
+\define@key[psset]{pst-map3d}{transfrmcolor}{%
+\pst@getcolor{#1}\pstransfrmcolor}
+\psset[pst-map3d]{transfrmcolor=orange}
+
+\define@key[psset]{pst-map3d}{trenchcolor}{%
+\pst@getcolor{#1}\pstrenchcolor}
+\psset[pst-map3d]{trenchcolor=darkgreen}
+
+\define@key[psset]{pst-map3d}{gridmapcolor}{%
+\pst@getcolor{#1}\psgridmapcolor}
+\psset[pst-map3d]{gridmapcolor=black}
+
+\define@key[psset]{pst-map3d}{circlecolor}{%
+\pst@getcolor{#1}\pscirclecolor}
+\psset[pst-map3d]{circlecolor=blue}
+
+\define@key[psset]{pst-map3d}{circlesep}{\edef\psk@WorldMap@circlesep{#1}}
+\psset{circlesep=2} % en degres
+
+\newdimen\pscirclewidth
+\def\psset@circlewidth#1{\pssetlength\pscirclewidth{#1}}
+\psset@circlewidth{.5pt}
+
+\newdimen\psgridmapwidth
+\def\psset@gridmapwidth#1{\pssetlength\psgridmapwidth{#1}}
+\psset@gridmapwidth{.8pt}
+
+\newdimen\psborderwidth
+\def\psset@borderwidth#1{\pssetlength\psborderwidth{#1}}
+\psset@borderwidth{.8pt}
+
+\newdimen\pscoastwidth
+\def\psset@coastwidth#1{\pssetlength\pscoastwidth{#1}}
+\psset@coastwidth{.8pt}
+
+\newdimen\pswfraczonwidth
+\def\psset@wfraczonwidth#1{\pssetlength\pswfraczonwidth{#1}}
+\psset@wfraczonwidth{.8pt}
+
+\newdimen\pswmaglinwidth
+\def\psset@wmaglinwidth#1{\pssetlength\pswmaglinwidth{#1}}
+\psset@wmaglinwidth{.8pt}
+
+\newdimen\psridgewidth
+\def\psset@ridgewidth#1{\pssetlength\psridgewidth{#1}}
+\psset@ridgewidth{2pt}
+
+\def\variablesTroisD{%
/RotX \psk@TroisD@RotX\space def
/RotY \psk@TroisD@RotY\space def
/RotZ \psk@TroisD@RotZ\space def
@@ -75,87 +186,408 @@
/Rsphere \psk@TroisD@Radius\space def
/Dobs \psk@TroisD@Dobs\space def
/DScreen \psk@TroisD@Ecran\space def
- /step \psk@WorldMap@level\space def
+ /xunit {\pst@number\psxunit\space mul}def
+ /yunit {\pst@number\psyunit\space mul}def
+ /runit {\pst@number\psrunit\space mul}def
}%
%
+\newif\ifPst@WorldMap@island
+\define@key[psset]{pst-map3d}{islands}[false]{\@nameuse{Pst@WorldMap@island#1}}
+\psset{islands=true}
+%
+\newif\ifPst@WorldMap@border
+\define@key[psset]{pst-map3d}{borders}[false]{\@nameuse{Pst@WorldMap@border#1}}
+\psset{borders=true}
+%
+\newif\ifPst@WorldMap@france
+\define@key[psset]{pst-map3d}{france}[true]{\@nameuse{Pst@WorldMap@france#1}}
+\psset{france=false}
+%
\newif\ifPst@WorldMap@capitals
-\define@key[psset]{pst-map3d}{capital}[false]{\@nameuse{Pst@WorldMap@capitals#1}}
-\psset{capital=false}
+\define@key[psset]{pst-map3d}{capitals}[true]{\@nameuse{Pst@WorldMap@capitals#1}}
+\psset{capitals=false}
+%
+\newif\ifPst@WorldMap@usa
+\define@key[psset]{pst-map3d}{usa}[true]{\@nameuse{Pst@WorldMap@usa#1}}
+\psset{usa=false}
+%
+\newif\ifPst@WorldMap@mexico
+\define@key[psset]{pst-map3d}{mexico}[true]{\@nameuse{Pst@WorldMap@mexico#1}}
+\psset{mexico=false}
+%
+\newif\ifPst@WorldMap@australia
+\define@key[psset]{pst-map3d}{australia}[true]{\@nameuse{Pst@WorldMap@australia#1}}
+\psset{australia=false}
+%
+\newif\ifPst@WorldMap@canada
+\define@key[psset]{pst-map3d}{canada}[true]{\@nameuse{Pst@WorldMap@canada#1}}
+\psset{canada=false}
%
\newif\ifPst@WorldMap@city
-\define@key[psset]{pst-map3d}{city}[false]{\@nameuse{Pst@WorldMap@city#1}}
-\psset{city=false}
+\define@key[psset]{pst-map3d}{citys}[false]{\@nameuse{Pst@WorldMap@city#1}}
+\psset{citys=false}
%
-\newif\ifPst@WorldMap@Rivers% hv 2004-05-03
-\define@key[psset]{pst-map3d}{rivers}[true]{\@nameuse{Pst@WorldMap@Rivers#1}}
+\newif\ifPst@WorldMap@Rivers%
+\define@key[psset]{pst-map3d}{rivers}[false]{\@nameuse{Pst@WorldMap@Rivers#1}}
\psset{rivers=true}
%
-\newif\ifPst@WorldMap@maillage
-\define@key[psset]{pst-map3d}{maillage}[true]{\@nameuse{Pst@WorldMap@maillage#1}}
-\psset{maillage=true}
+\newif\ifPst@WorldMap@Lake%
+\define@key[psset]{pst-map3d}{lakes}[false]{\@nameuse{Pst@WorldMap@Lake#1}}
+\psset{lakes=true}
%
+\newif\ifPst@WorldMap@gridmap
+\define@key[psset]{pst-map3d}{gridmap}[true]{\@nameuse{Pst@WorldMap@gridmap#1}}
+\psset{gridmap=true}
+%
+\newif\ifPst@WorldMap@coasts
+\define@key[psset]{pst-map3d}{coasts}[true]{\@nameuse{Pst@WorldMap@coasts#1}}
+\psset{coasts=false}
+%
+\newif\ifPst@WorldMap@fraczon
+\define@key[psset]{pst-map3d}{wfraczon}[true]{\@nameuse{Pst@WorldMap@fraczon#1}}
+\psset{wfraczon=false}
+%
+\newif\ifPst@WorldMap@ridge
+\define@key[psset]{pst-map3d}{ridge}[true]{\@nameuse{Pst@WorldMap@ridge#1}}
+\psset{ridge=false}
+%
+\newif\ifPst@WorldMap@maglin
+\define@key[psset]{pst-map3d}{wmaglin}[true]{\@nameuse{Pst@WorldMap@maglin#1}}
+\psset{wmaglin=false}
+%
+\newif\ifPst@WorldMap@circles
+\define@key[psset]{pst-map3d}{circles}[false]{\@nameuse{Pst@WorldMap@circles#1}}
+\psset{circles=true}
+%
+\newif\ifPst@WorldMap@visibility
+\define@key[psset]{pst-map3d}{visibility}[false]{\@nameuse{Pst@WorldMap@visibility#1}}
+\psset{visibility=true}
+%
+\newif\ifPst@WorldMap@blueEarth
+\define@key[psset]{pst-map3d}{blueEarth}[false]{\@nameuse{Pst@WorldMap@blueEarth#1}}
+\psset{blueEarth=true}
+%
+\newif\ifPst@WorldMap@ombre
+\define@key[psset]{pst-map3d}{daynight}[true]{\@nameuse{Pst@WorldMap@ombre#1}}
+\psset{daynight=false}
+%
\def\WorldMapThreeD{\pst@object{WorldMapThreeD}}
\def\WorldMapThreeD@i{\@ifnextchar[{\WorldMapThreeD@do}{\WorldMapThreeD@do[]}}
\def\WorldMapThreeD@do[#1]{{%
\psset{#1}%
-\begin@ClosedObj
+\begin@ClosedObj%
\addto@pscode{%
- /increment \psk@WorldMap@increment\space def
- \geo@variablesIIID
- (\psk@WorldMap@Path/river.dat) run
- (\psk@WorldMap@Path/pisland.dat) run
- (\psk@WorldMap@Path/pborder.dat) run
- (\psk@WorldMap@Path/plake.dat) run
+ /increment \psk@WorldMap@mapgriddiv\space def
+ \variablesTroisD
+ /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@WorldMap@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@WorldMap@longitudeMeridien\space def
+ /meridienwidth {\pst@number\psmeridienwidth SLW} def
+ /meridiencolor {\pst@usecolor\psmeridiencolor currentrgbcolor} def
+ /latitude_parallel \psk@WorldMap@latitudeParallel\space def
+ /parallelwidth {\pst@number\psparallelwidth SLW} def
+ /parallelcolor {\pst@usecolor\psparallelcolor currentrgbcolor} def
+ /year \psk@WorldMap@A\space def
+ /month \psk@WorldMap@M\space def
+ /day \psk@WorldMap@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@WorldMap@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
- /xunit {\pst@number\psxunit\space mul}def
- /yunit {\pst@number\psyunit\space mul}def
- /runit {\pst@number\psrunit\space mul}def
- gsave
- newpath
- 0.5 0.8 0.8 setrgbcolor
- % cercle vu par l'observateur
+ /pst@fill { \psk@opacityalpha .setopacityalpha fill } def
+ tx@map3DDict 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
- fill
+} def
+%
+\ifPst@WorldMap@visibility
+ /condition { 0 ge } def
+\else
+ /condition { 0 le } def
+\fi
+%
+\ifPst@WorldMap@ombre
+ the_night
+\fi
+%
+\ifPst@WorldMap@blueEarth
+ gsave
+ newpath
+ oceancolor
+ GrandCercle
+ pst@fill % fill
grestore
- /condition {PSfacette 0 le} def
- /departPhi -90 def
-tx@map3DDict begin
- MatriceTransformation
-/Draw {
- {
-CalculsPoints
-closepath
+\fi
+%
+\ifPst@WorldMap@circles
gsave
-Color setrgbcolor
-fill
+ oceans_seas_hatched
grestore
-stroke
-} forall
-}def
-%/Color {0.5 0.8 0.5} def
-/Color {\psk@WorldMap@Fillcolor} def
-border
- Draw
-islands
- Draw
-/Color {0.5 0.8 0.8} def
-lake
- Draw
-% les rivières
-\ifPst@WorldMap@Rivers % hv 2004-05-03
- /DrawRivers {
- { CalculsPoints
- 0 0 1 setrgbcolor
- stroke
- } forall
- }def
- river
- DrawRivers
\fi
+%
+\ifPst@WorldMap@border
+ (\psk@WorldMap@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@WorldMap@island
+ (\psk@WorldMap@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@WorldMap@france
+ (\psk@WorldMap@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@WorldMap@Lake
+ (\psk@WorldMap@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@WorldMap@coasts
+ (\psk@WorldMap@Path/pcoast.dat) run
+gsave
+GrandCercle
+clip
+coasts dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ coastwidth
+ coastcolor
+ stroke
+ }forall
+grestore
+\fi
+%
+\ifPst@WorldMap@usa
+ (\psk@WorldMap@Path/usa.dat) run
+gsave
+GrandCercle
+clip
+usa dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ borderwidth
+ bordercolor
+ stroke
+ }forall
+grestore
+\fi
+%
+\ifPst@WorldMap@mexico
+ (\psk@WorldMap@Path/mex.dat) run
+gsave
+GrandCercle
+clip
+mexico dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ borderwidth
+ bordercolor
+ stroke
+ }forall
+grestore
+\fi
+%
+\ifPst@WorldMap@australia
+ (\psk@WorldMap@Path/aus.dat) run
+gsave
+GrandCercle
+clip
+australia dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ borderwidth
+ bordercolor
+ stroke
+ }forall
+grestore
+\fi
+%
+\ifPst@WorldMap@canada
+ (\psk@WorldMap@Path/canada.dat) run
+gsave
+GrandCercle
+clip
+canada dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ borderwidth
+ bordercolor
+ stroke
+ }forall
+grestore
+\fi
+%
+\ifPst@WorldMap@fraczon
+ (\psk@WorldMap@Path/wfraczon.dat) run
+GrandCercle
+clip
+wfraczon dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ wfraczoncolor
+ wfraczonwidth
+ stroke}forall
+\fi
+%
+\ifPst@WorldMap@maglin
+ (\psk@WorldMap@Path/wmaglin.dat) run
+GrandCercle
+clip
+wmaglin dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ wmaglincolor
+ wmaglinwidth
+ stroke}forall
+\fi
+%
+\ifPst@WorldMap@ridge
+ (\psk@WorldMap@Path/ridge.dat) run
+gsave
+GrandCercle
+clip
+ridge dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ ridgecolor
+ ridgewidth
+ stroke}forall
+grestore
+ (\psk@WorldMap@Path/transfrm.dat) run
+gsave
+GrandCercle
+clip
+transfrm dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ transfrmcolor
+ ridgewidth
+ stroke}forall
+grestore
+ (\psk@WorldMap@Path/trench.dat) run
+gsave
+GrandCercle
+clip
+trench dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ trenchcolor
+ ridgewidth
+ stroke}forall
+grestore
+\fi
+%
+\ifPst@WorldMap@Rivers
+ (\psk@WorldMap@Path/river.dat) run
+GrandCercle
+clip
+river dup /REGION exch def
+CompteurRegions
+{CalculsPointsRegion
+ rivercolor
+ stroke}forall
+\fi
+%
\ifPst@WorldMap@city
% les capitales
(\psk@WorldMap@Path/c-cap.dat) run
@@ -175,13 +607,190 @@ DrawCitys
citycapitals
DrawCitys
\fi
-\ifPst@WorldMap@maillage
-/maillageColor {\psk@WorldMap@maillageColor} def
+%
+\ifPst@WorldMap@gridmap
MaillageSphere
\fi
end}%
-\end@ClosedObj
+\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( !
+ \variablesTroisD
+ tx@map3DDict 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}%
+%
+% adaptation de \mapput de \pst-map2d}
+\define@key[psset]{pst-map3d}{mapCountry}{\edef\psk@WorldMap@mapCountry{#1}}
+\psset{mapCountry=all}
+\define@key[psset]{pst-map3d}{nodeWidth}{\edef\psk@WorldMap@nodeWidth{#1}}
+\psset{nodeWidth=1mm}
+\newpsstyle{psNodeMapStyle}{fillstyle=solid,fillcolor=red}
+\newpsstyle{NodeLabelStyle}{fillstyle=solid,fillcolor=yellow,framesep=0,linestyle=none}
+
+%
+\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@WorldMap@mapCountry
+ \mapputIIID@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
+ \mapputIIID@v[#1](#2,#3)[#4]{#5}
+ \fi%
+ \fi%
}}
+\def\mapputIIID@v[#1](#2,#3)[#4]#5{{%
+ \pnodeMapIIID(#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){\psframebox[style=NodeLabelStyle]{\sf#5}}%
+}}
+%
+% 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{%
+ \variablesTroisD
+ /longitude_meridien #1 def
+ /meridienwidth {\pst@number\psmeridienwidth SLW} def
+ /meridiencolor {\pst@usecolor\psmeridiencolor currentrgbcolor} def
+ tx@map3DDict begin
+ MatriceTransformationZXY
+ \ifPst@WorldMap@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{%
+ \variablesTroisD
+ /latitude_parallel #1 def
+ /parallelwidth {\pst@number\psparallelwidth SLW} def
+ /parallelcolor {\pst@usecolor\psparallelcolor currentrgbcolor} def
+ tx@map3DDict begin
+ MatriceTransformationZXY
+ \ifPst@WorldMap@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
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\define@key[psset]{pst-map3d}{styleGlobe}{% style du globe
+\edef\psk@styleGlobe{#1}}
+
+\define@key[psset]{pst-map3d}{styleNight}{% style de la partie dans la nuit
+\edef\psk@styleNight{#1}}
+
+\newpsstyle{Globe}{circles=true}
+\newpsstyle{night}{fillstyle=solid,fillcolor=black,opacity=0.8}
+\psset[pst-map3d]{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@TroisD@Radius\space neg -1.5 add)(!3 \psk@TroisD@Radius\space neg -0.5 add)
+ \rput(! 0 \psk@TroisD@Radius\space neg -1 add){\white\psk@WorldMap@hour h le \psk@WorldMap@J/\psk@WorldMap@M/\psk@WorldMap@A}
+ \end@SpecialObj%
+ \ignorespaces}%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% épicentre d'un tremblement de terre
+% Earthquake Epicenters
+%
+\define@key[psset]{pst-map3d}{waves}{\edef\psk@WorldMap@waves{#1}}
+\psset{waves=3} % nombre de cercles concentriques
+\define@key[psset]{pst-map3d}{Rmax}{\edef\psk@WorldMap@Rmax{#1}}
+\psset{Rmax=1500} % rayon maximum du séisme en km
+
+\def\psepicenter{\pst@object{psepicenter}}
+\def\psepicenter@i(#1,#2)#3{%
+ \begin@SpecialObj%
+ \addto@pscode{%
+ \variablesTroisD
+ /longitude #1 def
+ /latitude #2 def
+ /nbre \psk@WorldMap@waves\space def
+ /dphi \psk@WorldMap@Rmax\space 0.008983 mul def
+ /circlecolor {\pst@usecolor\pscirclecolor currentrgbcolor} def
+ /circlewidth {\pst@number\pscirclewidth SLW} def
+ tx@map3DDict begin
+ circlecolor
+ circlewidth
+ nbre dphi longitude latitude
+ ondes
+ end}%
+ \mapputIIID(#1,#2){#3}
+ \end@SpecialObj%
+ \ignorespaces%
+}
\catcode`\@=\PstAtCode\relax
\endinput