[][src]Crate osm_tile_downloader

Download OpenStreetMap-tiles to your disk en-masse.

Use with absolute caution. Downloading tiles en-masse can hog down a tile server easily. I am not responsible for any damage this tool may cause.


This tool is available on crates.io and can be installed via cargo install osm-tile-downloader. It features a helpful CLI you can access via -h / --help.

It is also available as a library.

CLI Example

osm-tile-downloader \
  --north 50.811 \
  --east 6.1649 \
  --south 50.7492 \
  --west 6.031 \
  --url https://\{s\}.tile.openstreetmap.de/\{z\}/\{x\}/\{y\}.png \
  --output ./tiles \
  --rate 10

Library Example

use osm_tile_downloader::{fetch, BoundingBox, Config};
use std::path::Path;

let config = Config {
    bounding_box: BoundingBox::new_deg(50.811, 6.1649, 50.7492, 6.031),
    fetch_rate: 10,
    output_folder: Path::new("./tiles"),
    request_retries_amount: 3,
    url: "https://{s}.tile.openstreetmap.de/{z}/{x}/{y}.png",
    timeout_secs: 30,
    zoom_level: 10,

fetch(config).await.expect("failed fetching tiles");



A bounding box consisting of north, east, south and west coordinate boundaries given from 0 to 2π.


Tile fetching configuration.


An OSM slippy-map tile with x, y and z-coordinate.



Asynchronously fetch the open street map tiles specified in cfg and save them to the file system.