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

1"""WMS grabber.""" 

2 

3import gws 

4import gws.base.grabber.box 

5 

6from . import provider 

7 

8 

9class Object(gws.base.grabber.box.Object): 

10 """Box grabber that fetches map images from a WMS service with GetMap.""" 

11 

12 provider: provider.Object 

13 """WMS service provider.""" 

14 sourceLayers: list[gws.SourceLayer] 

15 """Source layers to render.""" 

16 

17 def __init__(self, opts: gws.base.grabber.Options, provider: provider.Object, sourceLayers: list[gws.SourceLayer], sourceCrs: gws.Crs): 

18 """Create the grabber. 

19 

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 

31 

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 ) 

40 

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))