From: Jean-Michel Sarlat Date: Thu, 8 Nov 2012 07:22:50 +0000 (+0100) Subject: Amélioration des procédures PlaceXXX, application au placement des noms des îles... X-Git-Url: https://melusine.eu.org/syracuse/G/git/?p=carto.git;a=commitdiff_plain;h=afef5a7c7fa62420adbce7738989c6e5146cd1a8 Amélioration des procédures PlaceXXX, application au placement des noms des îles de la Frise (32U/carte1). Petite réorganisation de fichiers. --- diff --git a/cartes/32U/postscript/LISTE.txt b/cartes/32U/postscript/LISTE.txt index 03c5775..c83ed86 100644 --- a/cartes/32U/postscript/LISTE.txt +++ b/cartes/32U/postscript/LISTE.txt @@ -1,9 +1,12 @@ -== Fichiers de données adaptées à la zone 32U +== Fichiers de données adaptées à la zone 32U pays.ps fleuves.ps lacs.ps lander.ps villes.ps +== Noms des fleuves et des îles pour placement +noms-fleuves.ps +nom-iles.ps == Cartes carte1.ps::Allemagne 1 (ps) carte1.pdf::Allemagne 1 (pdf) diff --git a/cartes/32U/postscript/carte1.pdf b/cartes/32U/postscript/carte1.pdf index da5935e..9cede90 100644 Binary files a/cartes/32U/postscript/carte1.pdf and b/cartes/32U/postscript/carte1.pdf differ diff --git a/cartes/32U/postscript/carte1.png b/cartes/32U/postscript/carte1.png index 242b39b..bae7991 100644 Binary files a/cartes/32U/postscript/carte1.png and b/cartes/32U/postscript/carte1.png differ diff --git a/cartes/32U/postscript/carte1.ps b/cartes/32U/postscript/carte1.ps index 7fedf9d..bbdc7df 100644 --- a/cartes/32U/postscript/carte1.ps +++ b/cartes/32U/postscript/carte1.ps @@ -1,4 +1,4 @@ -%! PS +%!PS << /PageSize [750 900] >> setpagedevice % ------------------------------------------------------------------------------ @@ -20,12 +20,13 @@ gsave %% Couleur du fond grestore % ------------------------------------------------------------------------------ -(pays.ps) run -(lander.ps) run -(fleuves.ps) run -(lacs.ps) run -(villes.ps) run -(iles.ps) run +(pays.ps) run +(lander.ps) run +(fleuves.ps) run +(lacs.ps) run +(villes.ps) run +(noms-iles.ps) run +(noms-fleuves.ps) run % ------------------------------------------------------------------------------ /Pas 1 def @@ -48,21 +49,32 @@ grestore } for } def +/concatstrings { + exch dup length + 2 index length add string + dup dup 4 2 roll copy length + 4 -1 roll putinterval +} bind def + %% PlacePoint et PlaceNom ------------------------------------------------------ -%% [e n (nom) angle] PlacePoint ensuite PlaceNom récupére ce qu'il lui faut dans -%% dictionnaire disquedict -/disquedict 10 dict def -disquedict /mtrx matrix put - -/Nom (Ville) def -/Position -1 def -/PlacePoint { - aload pop - /Position exch def - /Nom exch def - newpath - disquedict begin +%% [e n (nom) angle] PlacePoint ensuite PlaceNom récupère ce qu'il lui faut dans +%% dictionnaire placedict +%% +%% Usage : [e n (nom) pos (proc)] PlacePoint .... PlaceNom +%% Le cinquième argument est facultatif.... + +/placedict 10 dict def +placedict /mtrx matrix put + +/PlacePoint { + placedict begin + /argv exch def /argn argv length def + argv aload pop + /proc (Place_Defaut) def + argn 4 gt { (Place_) exch concatstrings /proc exch def } if + /pos exch def /nom exch def /Y exch def /X exch def + newpath /savematrix mtrx currentmatrix def X Y translate RayonDisque dup scale 0 0 1 0 360 arc @@ -71,40 +83,77 @@ disquedict /mtrx matrix put } def /PlaceNom { - Position -1 gt { - disquedict begin + placedict begin + pos -1 gt { /savematrix mtrx currentmatrix def X Y translate %% Dimension (largeur) du nom ------------------------- - Nom stringwidth pop /WX exch def + nom stringwidth pop /wx exch def %% ---------------------------------------------------- - Position cos LabelOffset mul /X exch def - Position sin LabelOffset mul /Y exch def - X 0 gt { - %% Nom à droite - X Y HauteurCaractere 2 sub moveto - } { - X 0 lt { - %% Nom à gauche - X WX sub Y HauteurCaractere 2 div sub moveto - } { - Y 0 gt { - %% Nom au dessus - X WX 2 div sub Y moveto - } { - %% Nom en dessous - X WX 2 div sub Y HauteurCaractere sub moveto - } ifelse - } ifelse - } ifelse - %% Présentation du nom -------------------------------- - 0.7 setgray Nom show - CouleurNom WX neg 0.65 sub 0.65 rmoveto Nom show + proc cvx exec %% ---------------------------------------------------- savematrix setmatrix - end - } if + } if + end +} def + +/Place_Defaut_Position { + pos cos LabelOffset mul /X exch def + pos sin LabelOffset mul /Y exch def + X 0 gt { + %% Nom à droite + X Y HauteurCaractere 2 div sub moveto + } { + X 0 lt { + %% Nom à gauche + X wx sub Y HauteurCaractere 2 div sub moveto + } { + Y 0 gt { + %% Nom au dessus + X wx 2 div sub Y moveto + } { + %% Nom en dessous + X wx 2 div sub Y HauteurCaractere sub moveto + } ifelse + } ifelse + } ifelse +} def + +/Place_Defaut { + Place_Defaut_Position + %% Présentation du nom -------------------------------- + 0.7 setgray nom show + CouleurNom wx neg 0.65 sub 0.65 rmoveto nom show +} def + +/Place_Centering { + wx 2 div neg wx 2 div neg rmoveto + %% Présentation du nom -------------------------------- + 0.7 setgray nom show + CouleurNom wx neg 0.65 sub 0.65 rmoveto nom show } def + +/Place_Rotate { + pos cos 0 ge { + pos rotate + LabelOffset HauteurCaractere 2 div neg moveto + } { + pos 180 sub rotate + LabelOffset wx add neg HauteurCaractere 2 div neg moveto + } ifelse + %% Présentation du nom -------------------------------- + 0.7 setgray nom show + CouleurNom wx neg 0.65 sub 0.65 rmoveto nom show +} def + +/Place_RotateCentering { + pos rotate wx 2 div neg HauteurCaractere 2 div neg moveto + %% Présentation du nom -------------------------------- + 0.7 setgray nom show + CouleurNom wx neg 0.65 sub 0.65 rmoveto nom show +} def + + % ------------------------------------------------------------------------------ 1 setlinejoin @@ -130,7 +179,7 @@ allemagne { Construction closepath gsave LightGoldenrod fill grestore} forall %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Länder (frontières) %%%%%%%%%%%%%%%%%%%%%%%%%%%%% lander { Construction closepath WhiteSmoke 0.5 setlinewidth stroke} forall -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Fleuves et rivières %%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Fleuves et rivières %%%%%%%%%%%%%%%%%%%%%%%%%%%%% [rhin saone elbe neckar rhone doubs danube oder saale mosel weser ems main] { { Construction DarkBlue 0.25 setlinewidth stroke} forall } forall @@ -141,7 +190,10 @@ lander { Construction closepath WhiteSmoke 0.5 setlinewidth stroke} forall /CouleurNom {DarkRed} def /RayonDisque 2 def /LabelOffset 5 def -V_allemagne { PlacePoint gsave DarkRed fill grestore} forall +[V_allemagne V_hollande V_belgique V_luxembourg V_france V_suisse V_autriche +V_tchequie V_pologne] { + { PlacePoint gsave DarkRed fill grestore PlaceNom} forall +} forall %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Capitales %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /Helvetica-Bold findfont 14 scalefont ISOEncode setfont @@ -153,14 +205,30 @@ V_allemagne_capitales_lander { PlacePoint gsave YellowGreen fill grestore PlaceNom } forall -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Iles %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Iles (Noms) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /Helvetica-Bold findfont 6 scalefont ISOEncode setfont /HauteurCaractere 5 def /CouleurNom {DarkBlue} def /RayonDisque 3 def /LabelOffset 5 def I_allemagne { - PlacePoint pop PlaceNom + PlacePoint PlaceNom } forall +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Rivières (Noms) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +/Helvetica-Bold findfont 6 scalefont ISOEncode setfont +/HauteurCaractere 5 def +/CouleurNom {DarkBlue} def +R_allemagne { + PlacePoint PlaceNom +} forall + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Autres annotations %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +/mo /moveto load def +/Helvetica-Bold findfont 20 scalefont setfont +/shm { gsave DarkBlue show grestore } def +90.412 368.266 mo (Nordsee)shm +630.412 418.266 mo (Ostsee)shm + + showpage diff --git a/cartes/32U/postscript/carte1.svg b/cartes/32U/postscript/carte1.svg index 0457639..03133da 100644 --- a/cartes/32U/postscript/carte1.svg +++ b/cartes/32U/postscript/carte1.svg @@ -9,22 +9,22 @@ xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - id="svg7047" + id="svg3004" version="1.1" inkscape:version="0.48.2 r9819" width="938.75" height="1126.25" - onload='init(evt)' xml:space="preserve" + onload='init(evt)' sodipodi:docname="carte1.pdf">image/svg+xml + inkscape:current-layer="g3012" />