{"id":15058958,"url":"https://github.com/enzet/map-machine","last_synced_at":"2025-10-12T05:50:30.328Z","repository":{"id":35529470,"uuid":"39800303","full_name":"enzet/map-machine","owner":"enzet","description":"Python renderer for OpenStreetMap with custom icons intended to display as many map features as possible","archived":false,"fork":false,"pushed_at":"2024-07-22T21:37:21.000Z","size":41022,"stargazers_count":527,"open_issues_count":63,"forks_count":36,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-05-24T15:27:12.140Z","etag":null,"topics":["icons","map","maps","openstreetmap","openstreetmap-renderer","osm","python","svg","svg-icons","svg-map"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/enzet.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-07-27T22:09:18.000Z","updated_at":"2025-05-05T16:55:16.000Z","dependencies_parsed_at":"2024-12-28T20:03:24.710Z","dependency_job_id":"6fcd85b3-636c-4d7d-905b-b598a42fac60","html_url":"https://github.com/enzet/map-machine","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/enzet/map-machine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enzet%2Fmap-machine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enzet%2Fmap-machine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enzet%2Fmap-machine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enzet%2Fmap-machine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/enzet","download_url":"https://codeload.github.com/enzet/map-machine/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enzet%2Fmap-machine/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279010335,"owners_count":26084738,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["icons","map","maps","openstreetmap","openstreetmap-renderer","osm","python","svg","svg-icons","svg-map"],"created_at":"2024-09-24T22:34:31.439Z","updated_at":"2025-10-12T05:50:30.289Z","avatar_url":"https://github.com/enzet.png","language":"Python","readme":"\u003c!--\n    This is generated file.\n    Do not edit it manually, edit the Moire source file instead.\n--\u003e\n\nThe **Map Machine** project consists of\n\n\n  * a Python [OpenStreetMap](http://openstreetmap.org) renderer:\n    * SVG [map generation](#map-generation),\n    * SVG and PNG [tile generation](#tile-generation),\n  * the [Röntgen](#röntgen-icon-set) icon set: unique CC-BY 4.0 map icons.\n\nThe idea behind the Map Machine project is to **show all the richness of the OpenStreetMap data**: to have a possibility to display any map feature represented by OpenStreetMap data tags by means of colors, shapes, and icons. Map Machine is created both for map contributors: to display all changes one made on the map even if they are small, and for map users: to dig down into the map and find every detail that was mapped.\n\nUnlike standard OpenStreetMap layers, **Map Machine is a playground for experiments** where one can easily try to support any unsupported tag, proposed tagging scheme, tags with little or even single usage, deprecated ones that are still in use.\n\nMap Machine is intended to be highly configurable, so it can generate precise but messy maps for OSM contributors as well as pretty and clean maps for OSM users. It can also use some slow algorithms for experimental features.\n\nSee\n\n  * [installation instructions](#installation),\n  * [map features](#map-features),\n  * [using Röntgen as JOSM style](#use-röntgen-as-josm-map-paint-style).\n\nUsage example\n-------------\n\n```shell\nmap-machine render -b 2.284,48.860,2.290,48.865\n```\n\nwill automatically download OSM data and render an SVG map of the specified area to `out/map.svg`. See [Map generation](#map-generation).\n\n```shell\nmap-machine tile -b 2.361,48.871,2.368,48.875\n```\n\nwill automatically download OSM data and render PNG tiles that cover the specified area to the `out/tiles` directory. See [Tile generation](#tile-generation).\n\nRöntgen icon set\n----------------\n\nThe central feature of the project is the Röntgen icon set. It is a set of monochrome 14 × 14 px pixel-aligned icons specially created for the Map Machine project. Unlike the Map Machine source code, which is under the MIT license, all icons are under the [CC BY](http://creativecommons.org/licenses/by/4.0/) license. So, with the appropriate credit the icon set can be used outside the project. Some icons can be used as emoji symbols.\n\nAll icons tend to support a common design style, which is heavily inspired by [Maki](https://github.com/mapbox/maki), [Osmic](https://github.com/gmgeo/osmic), and [Temaki](https://github.com/ideditor/temaki).\n\n![Icons](doc/grid.svg)\n\nFeel 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 the final goal is to cover all tags. However, commonly used tags have priority, other things being equal.\n\nGenerate an icon grid and sets of individual icons with `map-machine icons`. It will update the `doc/grid.svg` file, and create SVG files in the `out/icons_by_id` directory where files are named using shape identifiers (e.g. `power_tower_portal_2_level.svg`) and in the `icons_by_name` directory where files are named using shape names (e.g. `Röntgen portal two-level transmission tower.svg`). Files from the last directory are used in the OpenStreetMap wiki (e.g. [`File:Röntgen_portal_two-level_transmission_tower.svg`](https://wiki.openstreetmap.org/wiki/File:R%C3%B6ntgen_portal_two-level_transmission_tower.svg)).\n\nMap features\n------------\n\n### Extra icons ###\n\nMap Machine uses icons to visualize tags for nodes and areas. But unlike other renderers, Map Machine can use more than one icon to visualize an entity and can use colors to visualize [`colour`](https://wiki.openstreetmap.org/wiki/Key:colour) value or other entity properties (like [`material`](https://wiki.openstreetmap.org/wiki/Key:material) or [`genus`](https://wiki.openstreetmap.org/wiki/Key:genus)).\n\n### Isometric building shapes ###\n\nWith `--buildings isometric` or `--buildings isometric-no-parts` (not set by default), buildings are drawn using isometric shapes for walls and shade in proportion to [`building:levels`](https://wiki.openstreetmap.org/wiki/Key:building:levels), [`building:min_level`](https://wiki.openstreetmap.org/wiki/Key:building:min_level), [`height`](https://wiki.openstreetmap.org/wiki/Key:height), and [`min_height`](https://wiki.openstreetmap.org/wiki/Key:min_height) values.\n\n#### Example ####\n\n```shell\nmap-machine render -c -26.19049,28.05605 -s 600,400 --buildings isometric\n```\n\n![3D buildings](doc/buildings.svg)\n\n### Road lanes ###\n\nTo determine the road width Map Machine uses the [`width`](https://wiki.openstreetmap.org/wiki/Key:width) tag value or estimates it based on the [`lanes`](https://wiki.openstreetmap.org/wiki/Key:lanes) value. If lane value is specified, it also draws lane separators. This map style is highly inspired by Christoph Hormann's post [Navigating the Maze](http://blog.imagico.de/navigating-the-maze-part-2/).\n\n#### Example ####\n\n```shell\nmap-machine render -c 47.61224,-122.33866 -s 600,400\n```\n\n![Road lanes](doc/lanes.svg)\n\n### Trees ###\n\nVisualization of tree leaf types (broadleaved or needle-leaved) and genus or taxon by means of icon shapes and leaf cycles (deciduous or evergreen) by means of color.\n\n#### Example ####\n\n![Trees](doc/trees.svg)\n\n### Viewpoint and camera direction ###\n\n[`direction`](https://wiki.openstreetmap.org/wiki/Key:direction) tag values for [`tourism`](https://wiki.openstreetmap.org/wiki/Key:tourism) = [`viewpoint`](https://wiki.openstreetmap.org/wiki/Tag:tourism=viewpoint) and [`camera:direction`](https://wiki.openstreetmap.org/wiki/Key:camera:direction) for [`man_made`](https://wiki.openstreetmap.org/wiki/Key:man_made) = [`surveillance`](https://wiki.openstreetmap.org/wiki/Tag:man_made=surveillance) are rendered with sectors displaying the direction and angle (15º if angle is not specified) or the whole circle for panorama view. Radial gradient is used for surveillance and inverted radial gradient is used for viewpoints.\n\n#### Example ####\n\n```shell\nmap-machine render -c 52.50892,13.3244 -s 600,400 -z 18.5\n```\n\n![Surveillance](doc/surveillance.svg)\n\n![Viewpoints](doc/viewpoints.svg)\n\n### Power tower design ###\n\nVisualize [`design`](https://wiki.openstreetmap.org/wiki/Key:design) values used with [`power`](https://wiki.openstreetmap.org/wiki/Key:power) = [`tower`](https://wiki.openstreetmap.org/wiki/Tag:power=tower) and [`power`](https://wiki.openstreetmap.org/wiki/Key:power) = [`pole`](https://wiki.openstreetmap.org/wiki/Tag:power=pole) tags. `design` has more than 1 million usages in OpenStreetMap.\n\n![Power tower design](doc/icons_power.svg)\n\n![Power tower design](doc/power.svg)\n\n### Colors ###\n\nMap icons have [`colour`](https://wiki.openstreetmap.org/wiki/Key:colour) tag value if it is present, otherwise, icons are displayed with dark grey color by default, purple color for shop nodes, red color for emergency features, and special colors for natural features. Map Machine also takes into account [`building:colour`](https://wiki.openstreetmap.org/wiki/Key:building:colour), [`roof:colour`](https://wiki.openstreetmap.org/wiki/Key:roof:colour) and other `*:colour` tags, and uses the [`colour`](https://wiki.openstreetmap.org/wiki/Key:colour) tag value to paint subway lines.\n\n![Building colors](doc/colors.svg)\n\n### Emergency ###\n\n![Emergency](doc/icons_emergency.svg)\n\n### Japanese map symbols ###\n\nJapanese maps usually use [special symbols](https://en.wikipedia.org/wiki/List_of_Japanese_map_symbols) called *chizukigou* (地図記号) which are different from standard map symbols used in other countries. They can be enabled with `--country jp` option.\n\n![Japanese map symbols](doc/icons_japanese.svg)\n\n### Indoor features ###\n\nDraw indoor features specifying level with `--level` option. Possible values are numbers (e.g. `1`, `0.5`), lists of number separated by `;` (e.g. `1;2;4;4.5`), `all`, `overground`, and `underground`. The default value is not `all`, but `overground`, so underground objects are not shown on the map if `--level` option is not specified.\n\n#### Example ####\n\n```shell\nmap-machine render -c 4.5978,-74.07507 -s 600,400 -z 19.5 --level 0\n```\n\n![Indoor](doc/indoor.svg)\n\n### Shape combination ###\n\nOne of the key features of Map Machine is constructing icons from several shapes.\n\n#### Masts ####\n\nFor [`man_made`](https://wiki.openstreetmap.org/wiki/Key:man_made) = [`mast`](https://wiki.openstreetmap.org/wiki/Tag:man_made=mast) distinguish types (communication, lighting, monitoring, and siren) and construction (freestanding or lattice, and using of guys) are rendered by combining 7 unique icon shapes.\n\n![Mast types](doc/mast.svg)\n\n#### Volcanoes ####\n\nFor [`natural`](https://wiki.openstreetmap.org/wiki/Key:natural) = [`volcano`](https://wiki.openstreetmap.org/wiki/Tag:natural=volcano) status (active, dormant, extinct, or unspecified) and type (stratovolcano, shield, or scoria) are rendered by combining 7 unique icon shapes.\n\n![Volcano types](doc/volcano.svg)\n\nWireframe view\n--------------\n\n### Creation time mode ###\n\nVisualize element creation time with `--mode time`.\n\n![Creation time mode](doc/time.svg)\n\n### Author mode ###\n\nEvery way and node displayed with the random color picked for each author with `--mode author`.\n\n![Author mode](doc/author.svg)\n\nInstallation\n------------\n\nRequirements: Python 3.9.\n\n\n  * Install the [cairo 2D graphic library](https://www.cairographics.org/download/),\n  * install the [GEOS library](https://libgeos.org),\n  * install the Python packages with the command:\n\n```shell\npip install git+https://github.com/enzet/map-machine\n```\n\nFor more detailed instructions, see [instructions](doc/INSTALL.md).\n\nMap generation\n--------------\n\nThe `render` command is used to generate an SVG map from OpenStreetMap data. You can run it using:\n\n```shell\nmap-machine render \\\n    -b \u003cmin longitude\u003e,\u003cmin latitude\u003e,\u003cmax longitude\u003e,\u003cmax latitude\u003e \\\n    -o \u003coutput file name\u003e \\\n    -z \u003cOSM zoom level\u003e \\\n    \u003cother arguments\u003e\n```\n\n### Example ###\n\n```shell\nmap-machine render \\\n    --boundary-box 2.284,48.860,2.290,48.865 \\\n    --output out/esplanade_du_trocadéro.svg\n```\n\nwill download OSM data to `cache/2.284,48.860,2.290,48.865.osm` and render an SVG map of the specified area to `out/esplanade_du_trocadéro.svg`.\n\n### Arguments ###\n\n| Option | Description |\n|---|---|\n| \u003cspan style=\"white-space: nowrap;\"\u003e`-i`\u003c/span\u003e, \u003cspan style=\"white-space: nowrap;\"\u003e`--input`\u003c/span\u003e `\u003cpath\u003e` | input XML file name or names (if not specified, file will be downloaded using the OpenStreetMap API) |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`-o`\u003c/span\u003e, \u003cspan style=\"white-space: nowrap;\"\u003e`--output`\u003c/span\u003e `\u003cpath\u003e` | output SVG file name, default value: `out/map.svg` |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`-b`\u003c/span\u003e, \u003cspan style=\"white-space: nowrap;\"\u003e`--boundary-box`\u003c/span\u003e `\u003clon1\u003e,\u003clat1\u003e,\u003clon2\u003e,\u003clat2\u003e` | geo boundary box |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`--cache`\u003c/span\u003e `\u003cpath\u003e` | path for temporary OSM files, default value: `cache` |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`-z`\u003c/span\u003e, \u003cspan style=\"white-space: nowrap;\"\u003e`--zoom`\u003c/span\u003e `\u003cfloat\u003e` | OSM zoom level, default value: 18.0 |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`-c`\u003c/span\u003e, \u003cspan style=\"white-space: nowrap;\"\u003e`--coordinates`\u003c/span\u003e `\u003clatitude\u003e,\u003clongitude\u003e` | coordinates of any location inside the tile |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`-s`\u003c/span\u003e, \u003cspan style=\"white-space: nowrap;\"\u003e`--size`\u003c/span\u003e `\u003cwidth\u003e,\u003cheight\u003e` | resulted image size |\n\nplus [map configuration options](#map-options)\n\nTile generation\n---------------\n\nCommand `tile` is used to generate PNG tiles for [slippy maps](https://wiki.openstreetmap.org/wiki/Slippy_Map). To use them, run [Map Machine tile server](#tile-server).\n\n| Option | Description |\n|---|---|\n| \u003cspan style=\"white-space: nowrap;\"\u003e`-c`\u003c/span\u003e, \u003cspan style=\"white-space: nowrap;\"\u003e`--coordinates`\u003c/span\u003e `\u003clatitude\u003e,\u003clongitude\u003e` | coordinates of any location inside the tile |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`-t`\u003c/span\u003e, \u003cspan style=\"white-space: nowrap;\"\u003e`--tile`\u003c/span\u003e `\u003czoom level\u003e/\u003cx\u003e/\u003cy\u003e` | tile specification |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`--cache`\u003c/span\u003e `\u003cpath\u003e` | path for temporary OSM files, default value: `cache` |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`-b`\u003c/span\u003e, \u003cspan style=\"white-space: nowrap;\"\u003e`--boundary-box`\u003c/span\u003e `\u003clon1\u003e,\u003clat1\u003e,\u003clon2\u003e,\u003clat2\u003e` | construct the minimum amount of tiles that cover the requested boundary box |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`-z`\u003c/span\u003e, \u003cspan style=\"white-space: nowrap;\"\u003e`--zoom`\u003c/span\u003e `\u003crange\u003e` | OSM zoom levels; can be list of numbers or ranges, e.g. `16-18`, `16,17,18`, or `16,18-20`, default value: `18` |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`-i`\u003c/span\u003e, \u003cspan style=\"white-space: nowrap;\"\u003e`--input`\u003c/span\u003e `\u003cpath\u003e` | input OSM XML file name (if not specified, the file will be downloaded using the OpenStreetMap API) |\n\nplus [map configuration options](#map-options)\n\n### Generate one tile ###\n\nSpecify the tile coordinates:\n\n```shell\nmap-machine tile --tile \u003cOSM zoom level\u003e/\u003cx\u003e/\u003cy\u003e\n```\n\nor specify any geographical coordinates inside a tile:\n\n```shell\nmap-machine tile \\\n    --coordinates \u003clatitude\u003e,\u003clongitude\u003e \\\n    --zoom \u003cOSM zoom levels\u003e\n```\n\nThe tile will be stored as an SVG file `out/tiles/tile_\u003czoom level\u003e_\u003cx\u003e_\u003cy\u003e.svg` and a PNG file `out/tiles/tile_\u003czoom level\u003e_\u003cx\u003e_\u003cy\u003e.svg`, where `x` and `y` are tile coordinates. The `--zoom` option will be ignored if it is used with the `--tile` option.\n\nExample:\n\n```shell\nmap-machine tile -c 55.7510637,37.6270761 -z 18\n```\n\nwill generate an SVG file `out/tiles/tile_18_158471_81953.svg` and a PNG file `out/tiles/tile_18_158471_81953.png`.\n\n### Generate a set of tiles ###\n\nSpecify the boundary box to get the minimal set of tiles that covers the area:\n\n```shell\nmap-machine tile \\\n    --boundary-box \u003cmin longitude\u003e,\u003cmin latitude\u003e,\u003cmax longitude\u003e,\u003cmax latitude\u003e \\\n    --zoom \u003cOSM zoom levels\u003e\n```\n\nThe boundary box will be extended to the boundaries of the minimal tileset that covers the area, then it will be extended a bit more to avoid some artifacts on the edges rounded to 3 digits after the decimal point. The map with the new boundary box coordinates will be written to the cache directory as SVG and PNG files. All tiles will be stored as SVG files `out/tiles/tile_\u003czoom level\u003e_\u003cx\u003e_\u003cy\u003e.svg` and PNG files `out/tiles/tile_\u003czoom level\u003e_\u003cx\u003e_\u003cy\u003e.svg`, where `x` and `y` are tile coordinates.\n\nExample:\n\n```shell\nmap-machine tile -b 2.361,48.871,2.368,48.875\n```\n\nwill generate 36 PNG tiles at zoom level 18 from tile 18/132791/90164 all the way to 18/132796/90169 and two cached files `cache/2.360,48.869,2.370,48.877_18.svg` and `cache/2.360,48.869,2.370,48.877_18.png`.\n\nTile server\n-----------\n\nThe `server` command is used to run a tile server for slippy maps.\n\n```shell\nmap-machine server\n```\n\nStop server interrupting the process with \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eC\u003c/kbd\u003e.\n\n| Option | Description |\n|---|---|\n| \u003cspan style=\"white-space: nowrap;\"\u003e`--cache`\u003c/span\u003e `\u003cpath\u003e` | path for temporary OSM files, default value: `cache` |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`--port`\u003c/span\u003e `\u003cinteger\u003e` | port number, default value: 8080 |\n\n### Example ###\n\nCreate a minimal amount of tiles that cover specified boundary box for zoom levels 16, 17, 18, and 19:\n\n```shell\nmap-machine tile -b 2.364,48.854,2.367,48.857 -z 16-19\n```\n\nRun tile server on 127.0.0.1:8080:\n\n```shell\nmap-machine server\n```\n\nUse JavaScript code for [Leaflet](https://leafletjs.com/):\n\n```javascript\nvar map = L.map('mapid').setView([48.8555, 2.3655], 18);\n\nL.tileLayer('http://127.0.0.1:8080/tiles/{z}/{x}/{y}', {\n    maxZoom: 19,\n    attribution: 'Map data \u0026copy; ' +\n        '\u003ca href=\"https://www.openstreetmap.org/copyright\"\u003eOpenStreetMap\u003c/a\u003e ' +\n        'contributors, imagery \u0026copy; ' +\n        '\u003ca href=\"https:/github.com/enzet/map-machine\"\u003eMap Machine\u003c/a\u003e',\n    id: 'map_machine',\n    tileSize: 256,\n    zoomOffset: 0\n}).addTo(map);\n```\n\nHTML code:\n\n```html\n\u003cdiv id=\"mapid\" style=\"width: 1000px; height: 600px;\"\u003e\u003c/div\u003e\n```\n\nMap options\n-----------\n\nMap configuration options used by `render` and `tile` commands:\n\n| Option | Description |\n|---|---|\n| \u003cspan style=\"white-space: nowrap;\"\u003e`--scheme`\u003c/span\u003e `\u003cid\u003e or \u003cpath\u003e` | scheme identifier (look for `\u003cid\u003e.yml` file) or path to a YAML scheme file, default value: `default` |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`--buildings`\u003c/span\u003e `\u003cmode\u003e` | building drawing mode: no, flat, isometric, isometric-no-parts, default value: `flat` |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`--mode`\u003c/span\u003e `\u003cstring\u003e` | map drawing mode: normal, author, time, white, black, default value: `normal` |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`--overlap`\u003c/span\u003e `\u003cinteger\u003e` | how many pixels should be left around icons and text, default value: 12 |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`--labels`\u003c/span\u003e `\u003cstring\u003e` | label drawing mode: no, main, all, address, default value: `main` |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`--level`\u003c/span\u003e | display only this floor level, default value: `overground` |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`--seed`\u003c/span\u003e `\u003cstring\u003e` | seed for random |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`--tooltips`\u003c/span\u003e | add tooltips with tags for icons in SVG files |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`--country`\u003c/span\u003e | two-letter code (ISO 3166-1 alpha-2) of country, that should be used for location restrictions, default value: `world` |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`--ignore-level-matching`\u003c/span\u003e | draw all map features ignoring the current level |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`--roofs`\u003c/span\u003e | draw building roofs, set by default |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`--building-colors`\u003c/span\u003e | paint walls (if isometric mode is enabled) and roofs with specified colors |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`--show-overlapped`\u003c/span\u003e | show hidden nodes with a dot |\n\nMapCSS 0.2 generation\n---------------------\n\nThe `mapcss` command can be used to generate a MapCSS scheme. `map-machine mapcss` will create an `out/map_machine_mapcss` directory with simple MapCSS 0.2 scheme adding icons from the Röntgen icon set to nodes and areas: `.mapcss` file and directory with icons.\n\nTo create a MapCSS style with Map Machine style also for ways and relations, run `map-machine mapcss --ways`.\n\n| Option | Description |\n|---|---|\n| \u003cspan style=\"white-space: nowrap;\"\u003e`--icons`\u003c/span\u003e | add icons for nodes and areas, set by default |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`--ways`\u003c/span\u003e | add style for ways and relations |\n| \u003cspan style=\"white-space: nowrap;\"\u003e`--lifecycle`\u003c/span\u003e | add icons for lifecycle tags; be careful: this will increase the number of node and area selectors by 9 times, set by default |\n\n### Use Röntgen as JOSM map paint style ###\n\n\n  * Run `map-machine mapcss`.\n  * Open [JOSM](https://josm.openstreetmap.de/).\n  * Go to \u003ckbd\u003ePreferences\u003c/kbd\u003e → Third tab on the left → \u003ckbd\u003eMap Paint Styles\u003c/kbd\u003e.\n  * Active styles: press \u003ckbd\u003e+\u003c/kbd\u003e.\n  * URL / File: set path to `out/map_machine_mapcss/map_machine.mapcss`.\n\nTo enable/disable the Map Machine map paint style go to \u003ckbd\u003eView\u003c/kbd\u003e → \u003ckbd\u003eMap Paint Styles\u003c/kbd\u003e → \u003ckbd\u003eMap Machine\u003c/kbd\u003e.\n\n#### Example ####\n\n![JOSM example](doc/josm.png)\n\nExample of using Röntgen icons on top of the Mapnik style in JOSM. Map Paint Styles look like this:\n\n  * ✓ Mapnik (true)\n  * ✓ Map Machine\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenzet%2Fmap-machine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fenzet%2Fmap-machine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenzet%2Fmap-machine/lists"}