aboutsummaryrefslogtreecommitdiff
path: root/examples/generate_map.rs
blob: 2d83b0bdb06b4b44c24a8542277ab835627c7b6e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
use std::fs;
use wmap_renderer::{Configuration, StageType, render_to_png, render_to_svg};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Read the example.wmap file
    let map_source = fs::read_to_string("examples/example.wmap")?;
    let map = wmap_parser::parse(&map_source);
    let config = Configuration::default();

    // Generate PNG with smart positioning
    println!("Generating PNG with smart positioning...");
    let png_data = render_to_png(&map, StageType::Activities, &config)?;
    fs::write("example.png", png_data)?;
    println!("Generated example.png");

    // Generate SVG with smart positioning
    println!("Generating SVG with smart positioning...");
    let svg_data = render_to_svg(&map, StageType::Activities, &config)?;
    fs::write("example.svg", svg_data)?;
    println!("Generated example.svg");

    // Generate with different stage type
    println!("Generating with publication types stage type...");
    let png_publication_types = render_to_png(&map, StageType::PublicationTypes, &config)?;
    fs::write("example_publication_types.png", png_publication_types)?;
    println!("Generated example_publication_types.png");

    // Generate without smart positioning (simple right-side positioning)
    println!("Generating without smart positioning...");
    let mut config_no_smart = Configuration::default();
    config_no_smart.options.smart_label_positioning = false;
    let png_no_smart = render_to_png(&map, StageType::Activities, &config_no_smart)?;
    fs::write("example_no_smart_positioning.png", png_no_smart)?;
    println!("Generated example_no_smart_positioning.png");

    println!("\nAll examples generated successfully!");
    Ok(())
}