diff --git a/src/mapfile.py b/src/mapfile.py index 1b6c356a947ad76538ea6bb9ace33d61733153f0..75f7d1a29a16351bd2bc6573f8aa72621e930078 100644 --- a/src/mapfile.py +++ b/src/mapfile.py @@ -137,6 +137,8 @@ class Layer(MetadataMixin): def add_style_sld(self, mf, s_name, new_sld): + + # Because we do not want to apply the sld to real layers by mistake # we need to rename it to something we are sure is not used. sld_layer_name = "__mra_tmp_template" @@ -148,18 +150,23 @@ class Layer(MetadataMixin): xmlsld = parseString(new_sld) try: - name = xmlsld.firstChild.getElementsByTagName("NamedLayer")[0].getElementsByTagName("Name")[0].firstChild.data + xmlsld.firstChild.getElementsByTagName("NamedLayer")[0].getElementsByTagName("Name")[0].firstChild.data = sld_layer_name except: raise ValueError("Bad sld (No NamedLayer/Name)") - # Remove encoding. - _, new_sld = xmlsld.toprettyxml().split("\n", 1) + # Remove encoding ? + # @wapiflapi Mapscript ne gère pas les espaces... + new_sld = xmlsld.toxml() ms_template_layer = self.ms.clone() ms_template_layer.name = sld_layer_name mf.ms.insertLayer(ms_template_layer) + + try: + ms_template_layer.applySLD(new_sld, sld_layer_name) + except: + raise ValueError("Unable to access storage.") - ms_template_layer.applySLD(new_sld, sld_layer_name) for i in xrange(ms_template_layer.numclasses): ms_class = ms_template_layer.getClass(i) ms_class.group = s_name @@ -167,6 +174,7 @@ class Layer(MetadataMixin): mf.ms.removeLayer(ms_template_layer.index) + def set_default_style(self, mf): if self.ms.type == mapscript.MS_LAYER_POINT: diff --git a/src/server.py b/src/server.py index 9b3dbe5658673aee4e24f4e035ffa275ccd7557e..e102054f256f035017ab450f43168df074f15b9f 100755 --- a/src/server.py +++ b/src/server.py @@ -878,7 +878,6 @@ class layerstyles(object): mf = get_mapfile(map_name) try: - print tools.get_style_path(s_name) style = open(tools.get_style_path(s_name)).read() except IOError, OSError: with webapp.mightNotFound("style", mapfile=map_name):