Coverage for gws-app/gws/plugin/ows_client/wmts/grabber.py: 0%

16 statements  

« prev     ^ index     » next       coverage.py v7.16.2, created at 2026-10-05 13:35 +0200

1"""WMTS grabber.""" 

2 

3import gws 

4import gws.base.grabber.tile 

5 

6from . import provider 

7 

8 

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

10 """Tile grabber that fetches source tiles from a WMTS service.""" 

11 

12 provider: provider.Object 

13 """WMTS service provider.""" 

14 tms: gws.TileMatrixSet 

15 """Source tile matrix set.""" 

16 urlTemplate: str 

17 """Tile URL template with ``{TileMatrix}``, ``{TileCol}`` and ``{TileRow}`` placeholders.""" 

18 

19 def __init__(self, opts: gws.base.grabber.Options, provider: provider.Object, tms: gws.TileMatrixSet, urlTemplate: str): 

20 """Create the grabber. 

21 

22 The source CRS is the CRS of the tile matrix set. 

23 

24 Args: 

25 opts: Grabber options. 

26 provider: WMTS service provider. 

27 tms: Source tile matrix set. 

28 urlTemplate: Tile URL template. 

29 """ 

30 super().__init__(opts) 

31 self.provider = provider 

32 self.tms = tms 

33 self.urlTemplate = urlTemplate 

34 

35 self.sourceCrs = self.tms.crs 

36 self.sourceTms = self.tms 

37 

38 def fetch_tile_as_bytes(self, tm, col, row): 

39 return self.provider.get_tile(self.urlTemplate, tm.identifier, col, row)