• Stars
    star
    130
  • Rank 277,575 (Top 6 %)
  • Language
    Rust
  • License
    MIT License
  • Created about 6 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

OpenStreetMap raster tile renderer written in Rust

An OpenStreetMap raster tile renderer that compiles to a native Windows/Linux/macOS binary with no external dependencies.

You do have to install Rust to compile the binary, but other than that, all you need is an *.xml file with raw OSM data.

Importing data

This command takes a city.xml data file (get one from Geofabrik or a simliar service) and outputs city.bin, which will be used for rendering.

$ cargo run --release --bin importer city.xml city.bin

Rendering data

$ cat city.conf
[http]
address = localhost:8080

[geodata]
file = city.bin

[style]
file = mapcss/osmosnimki-minimal.mapcss
type = josm

$ cargo run --release --bin renderer city.conf

Raster tiles are now being served from http://localhost:8080/{z}/{x}/{y}.png. This URL template should work out of the box with leaflet.js, MKTileOverlay, or any map library that supports slippy tile layers.

You can use the @2x suffix to request high-resolution tiles (i.e. change your URL template to http://localhost:8080/{z}/{x}/{y}{r}.png for leaflet.js).

Rendering sample

The rendering style is based on MAPS.ME.

London centre

Caveats

The font renderer used in this project is very rudimentary, and only supports a limited number of scripts that are included in Noto Sans (namely, Latin, Greek, and Cyrillic).