Coverage for gws-app/gws/plugin/ows_client/wms/grabber.py: 0%
16 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"""WMS grabber."""
3import gws
4import gws.base.grabber.box
6from . import provider
9class Object(gws.base.grabber.box.Object):
10 """Box grabber that fetches map images from a WMS service with GetMap."""
12 provider: provider.Object
13 """WMS service provider."""
14 sourceLayers: list[gws.SourceLayer]
15 """Source layers to render."""
17 def __init__(self, opts: gws.base.grabber.Options, provider: provider.Object, sourceLayers: list[gws.SourceLayer], sourceCrs: gws.Crs):
18 """Create the grabber.
20 Args:
21 opts: Grabber options.
22 provider: WMS service provider.
23 sourceLayers: Source layers to render.
24 sourceCrs: CRS of the GetMap requests.
25 """
26 super().__init__(opts)
27 self.provider = provider
28 self.sourceLayers = sourceLayers
29 self.sourceCrs = sourceCrs
30 self.maxRequestPixels = self.provider.maxRequestPixels
32 def fetch_box_as_bytes(self, bounds, w, h, params=None):
33 return self.provider.get_map(
34 bounds,
35 w,
36 h,
37 self.sourceLayers,
38 self.mimeType,
39 )
41 def fetch_box_as_image(self, bounds, w, h, params=None):
42 return self.to_image(self.fetch_box_as_bytes(bounds, w, h, params))