aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/main.rs b/src/main.rs
index 7f7c532..11133af 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -7,7 +7,7 @@ use color_eyre::{
};
use hittekaart::{
gpx::{self, Compression},
- renderer::{self, heatmap, tilehunt, Renderer},
+ renderer::{self, heatmap, marktile, tilehunt, Renderer},
storage::{Folder, Sqlite, Storage},
};
use indicatif::{MultiProgress, ProgressBar, ProgressDrawTarget, ProgressStyle};
@@ -21,7 +21,8 @@ use rayon::{
#[derive(ValueEnum, Debug, Clone, Copy, PartialEq, Eq, Hash)]
enum Mode {
Heatmap,
- Tilehunt,
+ Marktile,
+ Tilehunter,
}
#[derive(Parser, Debug, Clone)]
@@ -56,6 +57,10 @@ struct Args {
/// Generation mode.
#[arg(value_enum, long, short, default_value_t = Mode::Heatmap)]
mode: Mode,
+
+ /// Zoom level for the tilehunter mode.
+ #[arg(long, default_value_t = 14)]
+ tilehunter_zoom: u32,
}
fn main() -> Result<()> {
@@ -72,12 +77,13 @@ fn main() -> Result<()> {
.build_global()?;
match args.mode {
- Mode::Heatmap => run::<heatmap::Renderer>(args),
- Mode::Tilehunt => run::<tilehunt::Renderer>(args),
+ Mode::Heatmap => run(heatmap::Renderer, args),
+ Mode::Marktile => run(marktile::Renderer, args),
+ Mode::Tilehunter => run(tilehunt::Renderer::new(args.tilehunter_zoom), args),
}
}
-fn run<R: Renderer>(args: Args) -> Result<()> {
+fn run<R: Renderer>(renderer: R, args: Args) -> Result<()> {
let progress_style =
ProgressStyle::with_template("[{elapsed}] {prefix:.cyan} {wide_bar} {pos:.green}/{len}")?;
let zoom_style =
@@ -130,7 +136,7 @@ fn run<R: Renderer>(args: Args) -> Result<()> {
let bar = make_bar(tracks.len().try_into().unwrap()).with_style(progress_style.clone());
multibar.insert_from_back(1, bar.clone());
bar.set_prefix("Rendering heat zones");
- let counter = renderer::prepare::<R, _>(zoom, &tracks, || {
+ let counter = renderer::prepare(&renderer, zoom, &tracks, || {
bar.inc(1);
Ok(())
})?;
@@ -139,10 +145,10 @@ fn run<R: Renderer>(args: Args) -> Result<()> {
storage.prepare_zoom(zoom)?;
- let bar = make_bar(R::tile_count(&counter)?).with_style(progress_style.clone());
+ let bar = make_bar(renderer.tile_count(&counter)?).with_style(progress_style.clone());
multibar.insert_from_back(1, bar.clone());
bar.set_prefix("Saving heat tiles");
- renderer::colorize::<R, _>(counter, |rendered_tile| {
+ renderer::colorize(&renderer, counter, |rendered_tile| {
storage.store(zoom, rendered_tile.x, rendered_tile.y, &rendered_tile.data)?;
bar.inc(1);
Ok(())