Coverage for gws-app/gws/plugin/qgis/grabber.py: 100%
15 statements
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-05 13:35 +0200
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-05 13:35 +0200
1"""Raster grabber for QGIS Server."""
3import gws
4import gws.base.grabber.box
6from . import provider
9class Object(gws.base.grabber.box.Object):
10 """Grabber that renders boxes with GetMap requests to QGIS Server."""
12 provider: provider.Object
13 """QGIS provider."""
14 params: dict
15 """Fixed GetMap parameters, e.g. ``LAYERS`` and ``FILTER``."""
17 def __init__(self, opts: gws.base.grabber.Options, provider: provider.Object, params: dict):
18 """Create the grabber.
20 Args:
21 opts: Grabber options.
22 provider: QGIS provider.
23 params: Fixed GetMap parameters, merged with per-request parameters.
24 """
25 super().__init__(opts)
26 self.provider = provider
27 self.params = params
28 self.sourceCrs = self.targetCrs
30 def fetch_box_as_bytes(self, bounds, w, h, params=None):
31 return self.provider.get_map(
32 bounds,
33 w,
34 h,
35 gws.u.merge(self.params, params),
36 )
38 def fetch_box_as_image(self, bounds, w, h, params=None):
39 return self.to_image(self.fetch_box_as_bytes(bounds, w, h, params))