9 releases
0.4.2 | Jan 24, 2024 |
---|---|
0.4.1 | May 27, 2022 |
0.4.0 | May 13, 2021 |
0.3.2 | Apr 28, 2021 |
0.1.1 | Sep 30, 2020 |
#304 in Images
Used in mbta-rs
460KB
750 lines
StaticMap
StaticMap is a library for rendering images of tile based maps.
Features
- Render a map to a PNG image.
- Draw features on a map, such as:
- Lines
- Circles
- PNG icons
Documentation
Examples
See the /examples folder for different examples on how to use the library.
Examples can be run with cargo run --example <example name>
.
Results:
Line
Circle
Icon
lib.rs
:
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][StaticMapBuilder] and find the tool builders in the [tools][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(())
}
Dependencies
~7.5MB
~136K SLoC