@@ -1309,15 +1309,15 @@ int main(int argc, char * argv[])
13091309 mapcache_grid_get_xy (& ctx , grid , region_bbox .maxx , region_bbox .maxy ,
13101310 cache -> top , & (til_region_bbox .maxx ), & (til_region_bbox .maxy ));
13111311 if (dbx_has_inv ) {
1312- db_region_bbox .minx = grid -> levels [cache -> top ]-> maxx - til_region_bbox .maxx ;
1313- db_region_bbox .maxx = grid -> levels [cache -> top ]-> maxx - til_region_bbox .minx ;
1312+ db_region_bbox .minx = grid -> levels [cache -> top ]-> maxx - 1 - til_region_bbox .maxx ;
1313+ db_region_bbox .maxx = grid -> levels [cache -> top ]-> maxx - 1 - til_region_bbox .minx ;
13141314 } else {
13151315 db_region_bbox .minx = til_region_bbox .minx ;
13161316 db_region_bbox .maxx = til_region_bbox .maxx ;
13171317 }
13181318 if (dby_has_inv ) {
1319- db_region_bbox .miny = grid -> levels [cache -> top ]-> maxy - til_region_bbox .maxy ;
1320- db_region_bbox .maxy = grid -> levels [cache -> top ]-> maxy - til_region_bbox .miny ;
1319+ db_region_bbox .miny = grid -> levels [cache -> top ]-> maxy - 1 - til_region_bbox .maxy ;
1320+ db_region_bbox .maxy = grid -> levels [cache -> top ]-> maxy - 1 - til_region_bbox .miny ;
13211321 } else {
13221322 db_region_bbox .miny = til_region_bbox .miny ;
13231323 db_region_bbox .maxy = til_region_bbox .maxy ;
@@ -1360,6 +1360,7 @@ int main(int argc, char * argv[])
13601360 apr_finfo_t fileinfo ;
13611361 mapcache_extent_i til_file_bbox ;
13621362 mapcache_extent file_bbox ;
1363+ int file_zoom_level ;
13631364 mapcache_extent temp_bbox ;
13641365 mapcache_extent region_in_file_bbox ;
13651366#ifdef USE_CLIPPERS
@@ -1433,21 +1434,23 @@ int main(int argc, char * argv[])
14331434
14341435 // Compute file bounding box expressed in tiles
14351436 if (cache -> top > 0 ) {
1437+ file_zoom_level = cache -> top ;
14361438 if (dbx_has_inv ) {
1437- til_file_bbox .minx = grid -> levels [cache -> top ]-> maxx - 1 - ix ;
1438- til_file_bbox .maxx = grid -> levels [ cache -> top ] -> maxx - 1 - ix ;
1439+ til_file_bbox .minx = grid -> levels [file_zoom_level ]-> maxx - 1 - ix ;
1440+ til_file_bbox .maxx = til_file_bbox . minx ;
14391441 } else {
14401442 til_file_bbox .minx = ix ;
1441- til_file_bbox .maxx = ix ;
1443+ til_file_bbox .maxx = til_file_bbox . minx ;
14421444 }
14431445 if (dby_has_inv ) {
1444- til_file_bbox .miny = grid -> levels [cache -> top ]-> maxy - 1 - iy ;
1445- til_file_bbox .maxy = grid -> levels [ cache -> top ] -> maxy - 1 - iy ;
1446+ til_file_bbox .miny = grid -> levels [file_zoom_level ]-> maxy - 1 - iy ;
1447+ til_file_bbox .maxy = til_file_bbox . miny ;
14461448 } else {
14471449 til_file_bbox .miny = iy ;
1448- til_file_bbox .maxy = iy ;
1450+ til_file_bbox .maxy = til_file_bbox . miny ;
14491451 }
14501452 } else if ((cache -> xcount > 0 ) && (cache -> ycount > 0 )) {
1453+ file_zoom_level = iz ;
14511454 if (dbx_has_inv ) {
14521455 til_file_bbox .maxx = grid -> levels [iz ]-> maxx - 1 - ix * cache -> xcount ;
14531456 til_file_bbox .minx = til_file_bbox .maxx + cache -> xcount + 1 ;
@@ -1471,6 +1474,7 @@ int main(int argc, char * argv[])
14711474 til_file_bbox .maxy = grid -> levels [iz ]-> maxy - 1 ;
14721475 }
14731476 } else {
1477+ file_zoom_level = iz ;
14741478 til_file_bbox .minx = 0 ;
14751479 til_file_bbox .miny = 0 ;
14761480 til_file_bbox .maxx = grid -> levels [iz ]-> maxx - 1 ;
@@ -1480,12 +1484,12 @@ int main(int argc, char * argv[])
14801484 // Compute file bounding box expressed in grid units for the current
14811485 // zoom level
14821486 mapcache_grid_get_tile_extent (& ctx , grid , til_file_bbox .minx ,
1483- til_file_bbox .miny , iz , & temp_bbox );
1487+ til_file_bbox .miny , file_zoom_level , & temp_bbox );
14841488 if (GC_HAS_ERROR (& ctx )) goto failure ;
14851489 file_bbox .minx = temp_bbox .minx ;
14861490 file_bbox .miny = temp_bbox .miny ;
14871491 mapcache_grid_get_tile_extent (& ctx , grid , til_file_bbox .maxx ,
1488- til_file_bbox .maxy , iz , & temp_bbox );
1492+ til_file_bbox .maxy , file_zoom_level , & temp_bbox );
14891493 if (GC_HAS_ERROR (& ctx )) goto failure ;
14901494 file_bbox .maxx = temp_bbox .maxx ;
14911495 file_bbox .maxy = temp_bbox .maxy ;
0 commit comments