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
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-05 13:35 +0200
1"""WMTS grabber."""
3import gws
4import gws.base.grabber.tile
6from . import provider
9class Object(gws.base.grabber.tile.Object):
10 """Tile grabber that fetches source tiles from a WMTS service."""
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."""
19 def __init__(self, opts: gws.base.grabber.Options, provider: provider.Object, tms: gws.TileMatrixSet, urlTemplate: str):
20 """Create the grabber.
22 The source CRS is the CRS of the tile matrix set.
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
35 self.sourceCrs = self.tms.crs
36 self.sourceTms = self.tms
38 def fetch_tile_as_bytes(self, tm, col, row):
39 return self.provider.get_tile(self.urlTemplate, tm.identifier, col, row)