https://github.com/dfyz/osm-renderer
OpenStreetMap raster tile renderer written in Rust
https://github.com/dfyz/osm-renderer
openstreetmap rust
Last synced: 4 months ago
JSON representation
OpenStreetMap raster tile renderer written in Rust
- Host: GitHub
- URL: https://github.com/dfyz/osm-renderer
- Owner: dfyz
- License: mit
- Created: 2018-09-08T12:06:06.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2025-02-10T01:17:13.000Z (5 months ago)
- Last Synced: 2025-02-10T02:24:50.630Z (5 months ago)
- Topics: openstreetmap, rust
- Language: Rust
- Homepage:
- Size: 120 MB
- Stars: 143
- Watchers: 6
- Forks: 15
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
An OpenStreetMap raster tile renderer that compiles to a native Windows/Linux/macOS binary with no external dependencies.
You do have to install [Rust](https://rustup.rs) 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](https://download.geofabrik.de) 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](https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames).
You can use the `@2x` suffix to request [high-resolution tiles](https://wiki.openstreetmap.org/wiki/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](https://github.com/mapsme/omim).

## 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](https://fonts.google.com/noto/specimen/Noto+Sans) (namely, Latin, Greek, and Cyrillic).