- grits_tile_foreach_index(tile, row, col)
- tile->children[row][col] = grits_tile_new(tile,
- tile->edge.n - lat_step*(row+0), // north
- tile->edge.n - lat_step*(row+1), // south
- tile->edge.w + lon_step*(col+1), // east
- tile->edge.w + lon_step*(col+0)); // west
+ grits_tile_foreach_index(tile, row, col) {
+ if (!tile->children[row][col])
+ tile->children[row][col] =
+ grits_tile_new(tile, 0, 0, 0, 0);
+ /* Set edges aferwards so that north and south
+ * get reset for mercator projections */
+ GritsTile *child = tile->children[row][col];
+ child->edge.n = tile->edge.n - lat_step*(row+0);
+ child->edge.s = tile->edge.n - lat_step*(row+1);
+ child->edge.e = tile->edge.w + lon_step*(col+1);
+ child->edge.w = tile->edge.w + lon_step*(col+0);
+ }