Source code for gws.common.layer.group

"""Generic group layer."""

import gws
import gws.gis.legend

import gws.types as t

from . import layer


[docs]class Group(layer.Layer):
[docs] def configure(self): super().configure() self.is_group = True self.supports_wms = True self.supports_wfs = True
[docs] def configure_legend(self): # since the sub layers are (post) configured after us, there's no way to tell # if any sublayer actually has a legend. So assume we have a legend for now return super().configure_legend() or t.LayerLegend(enabled=True)
[docs] def render_legend_image(self, context=None): paths = gws.compact(la.render_legend(context) for la in self.layers if la.has_legend) return gws.gis.legend.combine_legend_paths(paths)
@property def props(self): resolutions = set() for la in self.layers: resolutions.update(la.resolutions) return gws.merge( super().props, type='group', layers=self.layers, resolutions=sorted(resolutions, reverse=True))