diff --git a/src/mapfile.py b/src/mapfile.py index 6ed93f6961a7e5e4184093ba17bddfd6e52ce7e5..0a0702ae88ee72416027ca3c2c953a1730b9d68c 100644 --- a/src/mapfile.py +++ b/src/mapfile.py @@ -90,7 +90,7 @@ class Layer(MetadataMixin): def get_extent(self): extent = self.ms.getExtent() - return stores.Extent(extent.minX, extent.minY, extent.maxX, extent.maxY) + return stores.Extent(extent.minx, extent.miny, extent.maxx, extent.maxy) def get_fields(self, mf=None): fields = self.get_metadata("gml_include_items", "") @@ -166,26 +166,25 @@ class LayerGroup(object): self.mapfile = mapfile def iter_layers(self): - # return self.mapfile.iter_layers(attr={"GROUP":self.name}) - return self.mapfile.iter_layers(attr={"wms_group_name":self.name}) + return self.mapfile.iter_layers(meta={"wms_group_name":self.name}) def get_layers(self): return list(self.iter_layers()) def add_layer(self, layer): layer.ms.group = self.name - layer.set_metadatas("wms_group_name", self.name) + layer.set_metadata("wms_group_name", self.name) for k, v in self.mapfile.get_mra_metadata("layergroups")[self.name]: - layer.set_metadata("wms_group_%s", v) + layer.set_metadata("wms_group_%s" % k, v) def add(self, *args): for layer in args: if isinstance(layer, basestring): - layer = mapfile.get_layer(layer) + layer = self.mapfile.get_layer(layer) self.add_layer(layer) def remove_layer(self, layer): - layer.group = None + layer.ms.group = None for mkey in layer.get_metadata_keys(): # (We really do not want to use iter_metadata_keys()) if mkey.startswith("wms_group_"): @@ -199,7 +198,7 @@ class LayerGroup(object): def clear(self): # Remove all the layers from this group. - for layer in self.mapfile.iter_layers(attr={"group": layer_group.name}): + for layer in self.mapfile.iter_layers(attr={"group": self.name}): self.remove_layer(layer) def get_extent(self): @@ -207,10 +206,11 @@ class LayerGroup(object): if not layers: return stores.Extent(0, 0, 0, 0) - extent = layers[0] + extent = layers[0].get_extent() for layer in layers[1:]: - extent.addX(layer.minX, layer.maxX) - extent.addY(layer.minY, layer.maxY) + e = layer.get_extent() + extent.addX(e.minX, e.maxX) + extent.addY(e.minY, e.maxY) return extent @@ -778,17 +778,17 @@ class Mapfile(MetadataMixin): lg = self.get_layergroup(lg_name) lg.remove(*args) - def delete_layergroup(self, layer_group): - if not isinstance(layer_group, LayerGroup): - layer_group = self.get_layergroup(layergroup) + def delete_layergroup(self, lg_name): + layer_group = self.get_layergroup(lg_name) # Remove all the layers from this group. for layer in self.iter_layers(attr={"group": layer_group.name}): layer_group.remove(layer) # Remove the group from mra metadats. with self.mra_metadata("layergroups", {}) as layergroups: - del layergroups[layer_group] + del layergroups[lg_name] + # Styles: diff --git a/src/metadata.py b/src/metadata.py index 1af6ef9c8ee034d2f1046b1b29c705bdefca07a7..5baaa62a437b71c8f4904a25b50f947f18706cff 100644 --- a/src/metadata.py +++ b/src/metadata.py @@ -66,7 +66,7 @@ def iter_metadata_keys(obj): return keys def get_metadata_keys(obj): - return list(self.iter_metadata_keys) + return list(iter_metadata_keys(obj)) def set_metadata(obj, key, value): obj.setMetaData(key, value) diff --git a/src/server.py b/src/server.py index 2c32b1f2e64147f4904f7a9244a39646cb29499f..0f1246074e9966feedce42bf3bafbdcf8f20c5a0 100755 --- a/src/server.py +++ b/src/server.py @@ -540,8 +540,10 @@ class style(object): return { "name": s_name, - #TODO: Return the correct value... - "sldVersion": Entries(["1.0.0"], tag_name="version"), + "sldVersion": Entries([ + #TODO: Return the correct value... + "1.0.0" + ], tag_name="version"), "filename": s_name + ".sld", "href": "%s/maps/%s/styles/%s.sld" % (web.ctx.home, map_name, s_name) } @@ -778,7 +780,7 @@ class layergroups(object): data = get_data(name="layerGroup", mandatory=["name"]) lg_name = data.pop("name") - layers = data.pop("layers", []) + layers = [mf.get_layer(l_name) for l_name in data.pop("layers", [])] with webapp.mightConflict("layerGroup", mapfile=map_name): lg = mf.create_layergroup(lg_name, data) @@ -794,7 +796,7 @@ class layergroup(object): @HTTPCompatible() def GET(self, map_name, lg_name, format): mf = get_mapfile(map_name) - with webapp.mightNotFound("layergroup", mapfile=map_name): + with webapp.mightNotFound("layerGroup", mapfile=map_name): lg = mf.get_layergroup(lg_name) extent = lg.get_extent() @@ -836,9 +838,11 @@ class layergroup(object): mf.save() def DELETE(self, map_name, lg_name, format): + mf = get_mapfile(map_name) with webapp.mightNotFound("layerGroup", mapfile=map_name): mf.delete_layergroup(lg_name) + mf.save() # Index: