Ejemplo n.º 1
0
def check_zoom_levels(gpkg, mapproxy_configuration):
    try:
        grid = mapproxy_configuration.caches.get("default").conf.get("grids")[0]
        tile_size = mapproxy_configuration.grids.get(grid).conf.get("tile_size")
        tile_grid = mapproxy_configuration.grids.get(grid).tile_grid()
        for table_name in get_tile_table_names(gpkg):
            actual_zoom_levels = get_zoom_levels_table(gpkg, table_name)
            gpkg_tile_matrix = get_table_tile_matrix_information(gpkg, table_name)
            for actual_zoom_level in actual_zoom_levels:
                if actual_zoom_level not in [level.get("zoom_level") for level in gpkg_tile_matrix]:
                    res = tile_grid.resolution(actual_zoom_level)
                    grid_sizes = tile_grid.grid_sizes[actual_zoom_level]
                    with sqlite3.connect(gpkg) as conn:
                        conn.execute(
                            """
INSERT OR REPLACE INTO gpkg_tile_matrix (table_name, zoom_level, matrix_width, matrix_height, tile_width, tile_height,
pixel_x_size, pixel_y_size)
VALUES(?, ?, ?, ?, ?, ?, ?, ?)""",
                            (
                                table_name,
                                actual_zoom_level,
                                grid_sizes[0],
                                grid_sizes[1],
                                tile_size[0],
                                tile_size[1],
                                res,
                                res,
                            ),
                        )
    except Exception as e:
        logger.error("Problem in check_zoom_levels: {}".format(e))
        logger.error("Check provider MapProxy configuration.")
Ejemplo n.º 2
0
    def test_get_tile_table_names(self, sqlite3):
        expected_table_names = ["test1", "test2"]
        mock_table_names = [(expected_table_names[0],), (expected_table_names[1],)]
        gpkg = "/test/file.gpkg"
        sqlite3.connect().__enter__().execute.return_value = mock_table_names

        return_table_names = get_tile_table_names(gpkg)
        sqlite3.connect().__enter__().execute.assert_called_once_with(
            "SELECT table_name FROM gpkg_contents WHERE data_type = 'tiles';")
        self.assertEqual(expected_table_names, return_table_names)
Ejemplo n.º 3
0
def check_zoom_levels(gpkg, mapproxy_configuration):

    try:
        grid = mapproxy_configuration.caches.get('cache').conf.get('grids')[0]
        tile_size = mapproxy_configuration.grids.get(grid).conf.get('tile_size')
        tile_grid = mapproxy_configuration.grids.get(grid).tile_grid()
        for table_name in get_tile_table_names(gpkg):
            actual_zoom_levels = get_zoom_levels_table(gpkg, table_name)
            gpkg_tile_matrix = get_table_tile_matrix_information(gpkg, table_name)
            for actual_zoom_level in actual_zoom_levels:
                if actual_zoom_level not in [level.get('zoom_level') for level in gpkg_tile_matrix]:
                    res = tile_grid.resolution(actual_zoom_level)
                    grid_sizes = tile_grid.grid_sizes[actual_zoom_level]
                    with sqlite3.connect(gpkg) as conn:
                        conn.execute("""
INSERT OR REPLACE INTO gpkg_tile_matrix (table_name, zoom_level, matrix_width, matrix_height, tile_width, tile_height, pixel_x_size, pixel_y_size) 
VALUES(?, ?, ?, ?, ?, ?, ?, ?)""", (table_name, actual_zoom_level, grid_sizes[0], grid_sizes[1], tile_size[0], tile_size[1], res, res))
    except Exception as e:
        logger.error('Problem in check_zoom_levels: {}'.format(e))