def _res_or_scale(cfg, r, s): x = gws.get(cfg, r) if x: return x x = gws.get(cfg, s) if x: return units.scale_to_res(x)
def _explicit_resolutions(cfg): ls = gws.get(cfg, 'resolutions') if ls: return ls ls = gws.get(cfg, 'scales') if ls: return [units.scale_to_res(x) for x in ls]
def _extent_for_matrix(m: gws.TileMatrix): res = units.scale_to_res(m.scale) return [ m.x, m.y - res * m.height * m.tile_height, m.x + res * m.width * m.tile_width, m.y, ]
def mapproxy_config(self, mc): m0 = self.tile_matrix_set.matrices[0] res = [ units.scale_to_res(m.scale) for m in self.tile_matrix_set.matrices ] grid_uid = mc.grid(gws.compact({ 'origin': 'nw', # nw = upper-left for WMTS 'bbox': m0.extent, 'res': res, 'srs': self.source_crs.epsg, 'tile_size': [m0.tile_width, m0.tile_height], })) src = self.mapproxy_back_cache_config(mc, self.get_tile_url(), grid_uid) self.mapproxy_layer_config(mc, src)
import gws import gws.base.layer import gws.gis.crs import gws.gis.extent import gws.gis.zoom import gws.lib.units as units import gws.types as t # https://wiki.openstreetmap.org/wiki/Zoom_levels _DEFAULT_RESOLUTIONS = [ units.scale_to_res(150 * 1e6), units.scale_to_res(70 * 1e6), units.scale_to_res(35 * 1e6), units.scale_to_res(15 * 1e6), units.scale_to_res(10 * 1e6), units.scale_to_res(4 * 1e6), units.scale_to_res(2 * 1e6), units.scale_to_res(1 * 1e6), units.scale_to_res(500 * 1e3), units.scale_to_res(250 * 1e3), units.scale_to_res(150 * 1e3), units.scale_to_res(70 * 1e3), units.scale_to_res(35 * 1e3), units.scale_to_res(15 * 1e3), units.scale_to_res(8 * 1e3), units.scale_to_res(4 * 1e3), units.scale_to_res(2 * 1e3), units.scale_to_res(1 * 1e3), units.scale_to_res(500), ]