diff options
Diffstat (limited to 'src/tiling.rs')
-rw-r--r-- | src/tiling.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/tiling.rs b/src/tiling.rs new file mode 100644 index 0000000..8ab7fc3 --- /dev/null +++ b/src/tiling.rs @@ -0,0 +1,27 @@ +use std::{fs::File, io::Read}; + +use log::info; + +use crate::render::Renderer; + +pub struct Tiler { + renderer: Renderer, +} + +impl Tiler { + pub fn new(renderer: Renderer) -> Self { + Self { renderer } + } + pub fn get_tile(&self, z: isize, x: isize, y: isize) -> Vec<u8> { + info!("generating tile (zoom={z}, x={x}, y={z})"); + let segment = self.renderer.render_segment(x, y); + segment + .save(format!("tiles/{},{},{}.png", z, x, y)) + .unwrap(); + + let mut f = File::open(format!("tiles/{},{},{}.png", z, x, y)).unwrap(); + let mut buf = Vec::new(); + f.read_to_end(&mut buf).unwrap(); + buf + } +} |