Skip to content

Instantly share code, notes, and snippets.

@joaofig
Last active May 12, 2024 14:54
Show Gist options
  • Save joaofig/39ecdb83e2122d1b1187bca051487bc7 to your computer and use it in GitHub Desktop.
Save joaofig/39ecdb83e2122d1b1187bca051487bc7 to your computer and use it in GitHub Desktop.
Computes the tile file name and generates its contents if the file does not exist.
async fn get_tile_file_name(x: i32, y: i32, z:i32) -> String {
let quad_key = Quadkey::tile_to_quadkey(x, y, z as usize);
let mut file_name = format!("./tiles/{}/{}.png", z, quad_key);
let path = Path::new(&file_name);
if !path.exists() {
let tile_quad_keys = get_tile_quad_keys(&quad_key).await;
if tile_quad_keys.is_empty() {
file_name = get_default_filename();
} else {
let tile_pixels = get_tile_pixels(&quad_key, tile_quad_keys);
let range = get_level_range(quad_key.len() as i32 + 8).await;
let picture = paint_tile(tile_pixels,
get_color_gradient(),
range);
let folder_name = format!("./tiles/{}", z);
create_dir_all(&folder_name).unwrap();
picture.save(&file_name).unwrap();
}
}
file_name
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment