99 |
self.write_header() |
self.write_header() |
100 |
self.write_session(self.session) |
self.write_session(self.session) |
101 |
|
|
102 |
assert(self.indent_level == 0) |
assert self.indent_level == 0 |
103 |
|
|
104 |
def write_attribs(self, attrs): |
def write_attribs(self, attrs): |
105 |
for name, value in attrs.items(): |
for name, value in attrs.items(): |
127 |
|
|
128 |
def close_element(self, element): |
def close_element(self, element): |
129 |
self.indent_level -= 1 |
self.indent_level -= 1 |
130 |
assert(self.indent_level >= 0) |
assert self.indent_level >= 0 |
131 |
|
|
132 |
# see open_element() for an explanation |
# see open_element() for an explanation |
133 |
if self.element_open == 1: |
if self.element_open == 1: |
180 |
element, call write_layer for each layer contained in the map |
element, call write_layer for each layer contained in the map |
181 |
and finally call write_label_layer to write the label layer. |
and finally call write_label_layer to write the label layer. |
182 |
""" |
""" |
183 |
write = self.file.write |
#write = self.file.write |
184 |
self.open_element('map title="%s"' % escape(map.title)) |
self.open_element('map title="%s"' % escape(map.title)) |
185 |
self.write_projection(map.projection) |
self.write_projection(map.projection) |
186 |
for layer in map.Layers(): |
for layer in map.Layers(): |
211 |
|
|
212 |
attrs["title"] = layer.title |
attrs["title"] = layer.title |
213 |
attrs["filename"] = relative_filename(self.dir, layer.filename) |
attrs["filename"] = relative_filename(self.dir, layer.filename) |
214 |
attrs["stroke"] = lc.GetDefaultStroke().hex() |
attrs["stroke"] = lc.GetDefaultLineColor().hex() |
215 |
attrs["stroke_width"] = str(lc.GetDefaultStrokeWidth()) |
attrs["stroke_width"] = str(lc.GetDefaultLineWidth()) |
216 |
attrs["fill"] = lc.GetDefaultFill().hex() |
attrs["fill"] = lc.GetDefaultFill().hex() |
217 |
|
|
218 |
self.open_element("layer", attrs) |
self.open_element("layer", attrs) |
234 |
if field is None: return |
if field is None: return |
235 |
|
|
236 |
attrs["field"] = field |
attrs["field"] = field |
237 |
|
attrs["field_type"] = str(lc.GetFieldType()) |
238 |
self.open_element("classification", attrs) |
self.open_element("classification", attrs) |
239 |
|
|
240 |
|
|
244 |
|
|
245 |
# just playing now with lambdas and dictionaries |
# just playing now with lambdas and dictionaries |
246 |
|
|
247 |
types = [[lambda p: 'clnull', |
types = [[lambda p: 'clnull label="%s"' % p.GetLabel(), |
248 |
lambda p: 'clnull'], |
lambda p: 'clnull'], |
249 |
[lambda p: 'clpoint value="%s"' % |
[lambda p: 'clpoint label="%s" value="%s"' % |
250 |
str(p.GetValue()), |
(p.GetLabel(), str(p.GetValue())), |
251 |
lambda p: 'clpoint'], |
lambda p: 'clpoint'], |
252 |
[lambda p: 'clrange min="%s" max="%s"' % |
[lambda p: 'clrange label="%s" min="%s" max="%s"' % |
253 |
(str(p.GetMin()), |
(p.GetLabel(), |
254 |
(str(p.GetMax()))), |
str(p.GetMin()), (str(p.GetMax()))), |
255 |
lambda p: 'clrange']] |
lambda p: 'clrange']] |
256 |
|
|
257 |
def write_class_group(group): |
def write_class_group(group): |
260 |
elif isinstance(group, ClassGroupSingleton): type = 1 |
elif isinstance(group, ClassGroupSingleton): type = 1 |
261 |
elif isinstance(group, ClassGroupRange): type = 2 |
elif isinstance(group, ClassGroupRange): type = 2 |
262 |
elif isinstance(group, ClassGroupMap): type = 3 |
elif isinstance(group, ClassGroupMap): type = 3 |
263 |
assert(type >= 0) |
assert type >= 0 |
264 |
|
|
265 |
if type <= 2: |
if type <= 2: |
266 |
data = group.GetProperties() |
data = group.GetProperties() |
267 |
dict = {'stroke' : data.GetStroke().hex(), |
dict = {'stroke' : data.GetLineColor().hex(), |
268 |
'stroke_width': str(data.GetStrokeWidth()), |
'stroke_width': str(data.GetLineWidth()), |
269 |
'fill' : data.GetFill().hex()} |
'fill' : data.GetFill().hex()} |
270 |
|
|
271 |
self.open_element(types[type][0](group)) |
self.open_element(types[type][0](group)) |