def get_provider_grid(provider, min_zoom=None, max_zoom=None): """ :param provider: The DataProvider :return: The tile grid used by the DataProvider """ # Set custom zoom levels if available, otherwise use the provider defaults. min_zoom = int(min_zoom) if min_zoom else provider.level_from max_zoom = int(max_zoom) if max_zoom else provider.level_to config = load_provider_config(provider.config) try: res = config.get("grids", {}).get("default", {}).get("res", [])[min_zoom:max_zoom] if not res: levels = list(range(min_zoom, max_zoom)) tmp = mapproxy_grid.tile_grid_for_epsg("EPSG:4326") res = list(map(lambda l: tmp.resolution(l), levels)) except Exception as e: logger.warning("Error getting resolutions from mapproxy grid.") logger.error(e) res = None return mapproxy_grid.tile_grid_for_epsg("EPSG:4326", tile_size=(256, 256), res=res)
def get_default_tile_grid(level=10): """ A geodetic grid for EPSG:4326 containing only the specified tile level :param level: The desired level for the tiling grid :return: """ tmp = mapproxy_grid.tile_grid_for_epsg('EPSG:4326') res = tmp.resolution(level) return mapproxy_grid.tile_grid_for_epsg('EPSG:4326', res=[res])
def get_provider_grid(provider): """ :param provider: The DataProvider :return: The tile grid used by the DataProvider """ # TODO: Pull this provider's grid out of it's config levels = list(range(provider.level_from, provider.level_to + 1)) tmp = mapproxy_grid.tile_grid_for_epsg('EPSG:4326') res = list(map(lambda l: tmp.resolution(l), levels)) return mapproxy_grid.tile_grid_for_epsg('EPSG:4326', tile_size=(256, 256), res=res)
def test_res_range_open_from(self): levels = LevelsResolutionRange([None, 100]) assert levels.for_grid(tile_grid_for_epsg(900913)) == [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ]
def test_res_range_open_to(self): levels = LevelsResolutionRange([1000, None]) assert levels.for_grid(tile_grid_for_epsg(900913)) == [ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, ]
def test_res_range_open_to(self): levels = LevelsResolutionRange([1000, None]) eq_(levels.for_grid(tile_grid_for_epsg(900913)), [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19])
def test_level_range_open_tos_range(self): levels = LevelsResolutionRange([1000, 100]) assert levels.for_grid(tile_grid_for_epsg(900913)) == [8, 9, 10, 11]
def test_level_range_open_to(self): levels = LevelsRange([13, None]) assert levels.for_grid( tile_grid_for_epsg(4326)) == [13, 14, 15, 16, 17, 18, 19]
def test_level_range_open_from(self): levels = LevelsRange([None, 5]) assert levels.for_grid(tile_grid_for_epsg(4326)) == [0, 1, 2, 3, 4, 5]
def test_level_range(self): levels = LevelsRange([1, 5]) assert levels.for_grid(tile_grid_for_epsg(4326)) == [1, 2, 3, 4, 5]
def test_level_list(self): levels = LevelsList([-10, 3, 1, 3, 5, 7, 50]) assert levels.for_grid(tile_grid_for_epsg(4326)) == [1, 3, 5, 7]
def test_level_range(self): levels = LevelsRange([1, 5]) eq_(levels.for_grid(tile_grid_for_epsg(4326)), [1, 2, 3, 4, 5])
def test_level_list(self): levels = LevelsList([-10, 3, 1, 3, 5, 7, 50]) eq_(levels.for_grid(tile_grid_for_epsg(4326)), [1, 3, 5, 7])
def test_res_range_open_from(self): levels = LevelsResolutionRange([None, 100]) eq_(levels.for_grid(tile_grid_for_epsg(900913)), [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
def test_level_range_open_tos_range(self): levels = LevelsResolutionRange([1000, 100]) eq_(levels.for_grid(tile_grid_for_epsg(900913)), [8, 9, 10, 11])
def test_level_range_open_to(self): levels = LevelsRange([13, None]) eq_(levels.for_grid(tile_grid_for_epsg(4326)), [13, 14, 15, 16, 17, 18, 19])
def test_level_range_open_from(self): levels = LevelsRange([None, 5]) eq_(levels.for_grid(tile_grid_for_epsg(4326)), [0, 1, 2, 3, 4, 5])
def test_resolution_list(self): levels = LevelsResolutionList([1000, 100, 500]) assert levels.for_grid(tile_grid_for_epsg(900913)) == [8, 9, 11]
def test_resolution_list(self): levels = LevelsResolutionList([1000, 100, 500]) eq_(levels.for_grid(tile_grid_for_epsg(900913)), [8, 9, 11])