source: osmose-frontend/tools/make-markers.py @ c32ea78

Last change on this file since c32ea78 was c32ea78, checked in by Jocelyn Jaubert <jocelyn.jaubert@…>, 6 years ago

Make make-markers.py work again

  • Property mode set to 100755
File size: 5.4 KB
Line 
1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3
4import utils, commands, sys, os
5#import commands, sys
6#sys.path.append("../cgi-src")
7#from index import menu_groupes, menu_autres
8
9################################################################################
10
11all_items = []
12for g in utils.get_categories("en"):
13    all_items += g["item"]
14
15################################################################################
16## symboles
17
18## O point
19## L losange
20## K carré
21## P plus
22## M moins
23## F croix
24## = signe égal
25## | trait vertical
26## || double trait vertical
27## :: quatre points
28## .:. quatre points en losange
29## T tiangle haut
30## t tiangle bas
31## X sablier
32## >< sablier couche
33## L'
34## .l
35## [] carré vide
36## . point
37
38def get_symb(symbole):
39    if symbole == "O":
40        return "<circle cx='8' cy='8' r='3' />"
41    if symbole == "L":
42        return "<path d='M 8,12 L 4,8 L 8,4 L 12,8 L 8,12 z' />"
43    if symbole == "K":
44        return "<path d='M 11,11 L 5,11 L 5,5 L 11,5 L 11,11 z' />"
45    if symbole == "P":
46        l1 = "<path d='M 9,11 L 7,11 L 7,5 L 9,5 L 9,11 z' />"
47        l2 = "<path d='M 11,9 L 5,9 L 5,7 L 11,7 L 11,9 z' />"
48        return l1+l2
49    if symbole == "F":
50        l1 = "<path transform='rotate(45 8 8)' d='M 9,12 L 7,12 L 7,4 L 9,4 L 9,12 z' />"
51        l2 = "<path transform='rotate(45 8 8)' d='M 12,9 L 4,9 L 4,7 L 12,7 L 12,9 z' />"
52        return l1+l2
53    if symbole == "M":
54        return "<path d='M 11,9 L 5,9 L 5,7 L 11,7 L 11,9 z' />"
55    if symbole == "=":
56        l1 = "<path d='M 11,9 L 5,9 L 5,11 L 11,11 L 11,9 z' />"
57        l2 = "<path d='M 11,7 L 5,7 L 5,5 L 11,5 L 11,7 z' />"
58        return l1+l2
59    if symbole == "|":
60        return "<path d='M 9,11 L 7,11 L 7,5 L 9,5 L 9,11 z' />"
61    if symbole == "||":
62        l1 = "<path transform='rotate(90 8 8)' d='M 11,9 L 5,9 L 5,11 L 11,11 L 11,9 z' />"
63        l2 = "<path transform='rotate(90 8 8)' d='M 11,7 L 5,7 L 5,5 L 11,5 L 11,7 z' />"
64        return l1+l2
65    if symbole == "::":
66        l1 = "<path d='M 11,9 L 9,9 L 9,11 L 11,11 L 11,9 z' />"
67        l2 = "<path d='M 11,7 L 9,7 L 9,5 L 11,5 L 11,7 z' />"
68        l3 = "<path d='M 7,9 L 5,9 L 5,11 L 7,11 L 7,9 z' />"
69        l4 = "<path d='M 7,7 L 5,7 L 5,5 L 7,5 L 7,7 z' />"
70        return l1+l2+l3+l4
71    if symbole == ".:.":
72        l1 = "<path d='M 11,9 L 9,9 L 9,11 L 11,11 L 11,9 z' />"
73        l2 = "<path d='M 11,7 L 9,7 L 9,5 L 11,5 L 11,7 z' />"
74        l3 = "<path d='M 7,9 L 5,9 L 5,11 L 7,11 L 7,9 z' />"
75        l4 = "<path d='M 7,7 L 5,7 L 5,5 L 7,5 L 7,7 z' />"
76        return "<g transform='rotate(45 8 8)'>"+l1+l2+l3+l4+"</g>"
77    if symbole == "T":
78        return "<path d='M 5,11 L 5,5 L 11,5 L 5,11 z' />"
79    if symbole == "t":
80        return "<path d='M 11,11 L 5,11 L 11,5 L 11,11 z' />"
81    if symbole == "X":
82        return "<path d='M 11,11 L 5,11 L 11,5 L 5,5 L 11,11 z' />"
83    if symbole == "><":
84        return "<path d='M 11,11 L 11,5 L 5,11 L 5,5 L 11,11 z' />"
85    if symbole == "L'":
86        l1 = "<path d='M 5,5 L 11,5 L 11,7 L 7,7 L 7,11 L 5,11 z' />"
87        l2 = "<path d='M 11,11 L 9,11 L 9,9 L 11,9 z' />"
88        return l1+l2
89    if symbole == ".l":
90        l1 = "<path d='M 11,11 L 11,5 L 9,5 L 9,9 L 5,9 L 5,11 z' />"
91        l2 = "<path d='M 5,5 L 7,5 L 7,7 L 5,7 z' />"
92        return l1+l2
93    if symbole == "[]":
94        return "<path d='M 5,5 L 11,5 L 11,11 L 5,11 z M 7,7 L 7,9 L 9,9 L 9,7 z' />"
95    if symbole == ".":
96        return "<path d='M 7,7 L 7,9 L 9,9 L 9,7 z' />"
97
98################################################################################
99## marqueurs
100
101## M marqueur
102## L légende
103
104def get_marker(contour, symbole, couleur):
105    if contour == "M": # marqueur
106        h = 32
107        l = 20
108        g = "translate(2,3) scale(1,1)"
109        c = "<path style='fill:" + couleur + ";stroke:#000000;stroke-width:.5px' d='M 10,1 L 19,10 L 10,31, L 1,10, L 10,1 z' />"
110        m = get_symb(symbole)
111    if contour == "L": # légende
112        h = 12
113        l = h
114        g = "translate(-2,-2) scale(1,1)"
115        c = "<path style='fill:" + couleur + ";stroke:#000000;stroke-width:1px' d='M 0.5,0.5 L 0.5,11.5 L 11.5,11.5 L 11.5,0.5 L 0.5,0.5 z' />"
116        m = get_symb(symbole)
117    if contour == "B": # bubble
118        h = 32
119        l = 16
120        g = "translate(0,1) scale(1,1)"
121        c = "<path style='fill:" + couleur + ";stroke:#000000;stroke-width:.5px' d='m 8,31.75 c 2,-12 7.75,-18 7.75,-23.5 0,-4 -3.5,-8 -7.75,-8 -4.25,0 -7.75,4 -7.75,8 0,5.5 5.75,11.5 7.75,23.5 z' />"
122        m = get_symb(symbole)
123    head  = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n"
124    head += "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\""+str(l)+"\" height=\""+str(h)+"\">\n"
125    tail = "</svg>"
126    return head + c + "\n<g transform='" + g + "' style='fill:#000000;'>\n" + m + "</g>\n" + tail
127
128################################################################################
129
130marker_folder = os.path.join("..", "static", "images", "markers")
131commands.getstatusoutput("rm %s"%os.path.join(marker_folder,"*.png"))
132for i in all_items:
133    print i
134    for m in "MLB":
135        file_svg = os.path.join(marker_folder, "marker-%s-%d.svg"%(m.lower(), i["item"]))
136        file_png = os.path.join(marker_folder, "marker-%s-%d.png"%(m.lower(), i["item"]))
137        open(file_svg,"w").write(get_marker(m, i["marker_flag"], i["marker_color"]))
138        commands.getstatusoutput("rsvg %s %s"%(file_svg, file_png))
139commands.getstatusoutput("rm %s"%os.path.join(marker_folder,"*.svg"))
Note: See TracBrowser for help on using the repository browser.