.idea | ||
data | ||
doc | ||
icons | ||
roentgen | ||
test | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
readme.md | ||
requirements.txt | ||
run.py | ||
session.vim | ||
test_main.py |
Röntgen is a
- simple Python OpenStreetMap renderer,
- set of icons,
- and map styles.
The idea behind Röntgen project is to have a possibility to display every map feature represented by OpenStreetMap data tags by means of colors, shapes, and icons.
Röntgen is primarily created for OpenStreetMap contributors. Suppose, you spent time adding colors for building walls, benches and shelters for bus stops but they are not represented on the standard tile layer. Röntgen helps to display all changes you made.
Nevertheless, Röntgen map generator can generate precise but messy maps for OSM contributors as well as pretty and clean maps for OSM users.
Map features
Building levels
Simple shapes for walls and shade in proportion to building:levels
value.
Trees
Tree leaf types, leaf cycles, and genes.
Viewpoint and camera direction
Visualize direction
tag for tourism=viewpoint
and camera:direction
for
man_made=surveillance
.
Icon set
If tag is drawable it is displayed using icon combination and colors. All icons are under CC BY 4.0 license. So, do whatever you want but give appropriate credit. Icon set is heavily inspired by Osmic icon set.
Feel free to request new icons via issues for whatever you want to see on the map. No matter how frequently the tag is used in OpenStreetMap since final goal is to cover all tags. However, common used tags have priority, other things being equal.
Draw icon grid: python3 run.py grid
.
Icon combination
Some icons can be combined into new icons.
Röntgen map styles
All tags style
Options: --show-missing-tags --overlap 0
.
Display as many OpenStreetMap data tags on the map as possible.
Pretty style
Options: --draw-captions main --level overground
.
Display only not overlapping icons and main captions.
Creation time mode
Visualize element creation time.
Author mode
Every way and node displayed with the random color picked for each author.
Map generation
Requirements: Python (at least 3.7) and Python libraries (see
requirements.txt
).
There are simple Python renderer that generates SVG map from OpenStreetMap data. You can run it using:
python3 run.py \
-b ${LONGITUDE_1},${LATITUDE_1},${LONGITUDE_2},${LATITUDE_2} \
-o ${OUTPUT_FILE_NAME} \
-s ${WIDTH},${HEIGHT}
Example:
python3 run.py -b 2.284,48.86,2.29,48.865 -o map.svg -s 1000,1000
Main arguments
Required
Option | Value | Description |
-b, --boundary-box | <longitude 1>,<latitude 1>,<longitude 2>,<latitude 2> | Boundary box to draw. |
-s, --size | <width>,<height> | Result image size in pixels. |
-o | <path> | Path to output SVG file name. |
Optional
Option | Value | Description |
-i | <path> | Path to input XML file name. If this argument is not set, XML file will be downloaded through OpenStreetMap API. |
Check all arguments with python3 run.py --help
.