Expand description

StaticMap is a library for rendering images of tile based maps.

StaticMap uses a builder pattern for building maps, lines and markers.

To get started, build a map instance using StaticMapBuilder and find the tool builders in the tools module.

Features:

  • Render a map to a PNG image.
  • Draw features on a map, such as:
    • Lines
    • Circles
    • PNG icons

Example

use staticmap::{
    tools::{Color, LineBuilder},
    StaticMapBuilder, Error,
};

fn main() -> Result<(), Error> {
    let mut map = StaticMapBuilder::default()
        .width(300)
        .height(400)
        .padding((10, 0))
        .build()?;

    let lat: &[f64] = &[52.5, 48.9];
    let lon: Vec<f64> = vec![13.4, 2.3];

    let red = Color::new(true, 255, 0, 0, 255);

    let line = LineBuilder::default()
        .lat_coordinates(lat.to_vec())
        .lon_coordinates(lon)
        .width(3.)
        .simplify(true)
        .color(red)
        .build()?;

    map.add_tool(line);
    map.save_png("line.png")?;

    Ok(())
}

Modules

Tools for drawing features onto the map.

Structs

Helper struct for converting to pixels, and to pass information about map bounds to implementors of Tool.

Main type. Use StaticMapBuilder as an entrypoint.

Enums

An enum containing all possible errors when interacting with this library.

Functions

Latitude to y coordinate.

Longitude to x coordinate.

X to longitude coordinate.

Y to latitude coordinate.