What is alaCarte?
alaCarte is a tile renderer for OpenStreetMap data written in C++11, using Cairo for rendering and Boost-Spirit for MapCSS parsing.
The rendered tiles are served over HTTP using the Slippy map tilenames convention.
To compute which data is needed for rendering a tile, alaCarte uses a variant of a STR-Tree.
alaCarte was designed with medium dataset size in mind. On a typical machine with at leat 8GB RAM, alaCarte can handle a unfiltered export from the federal state of Baden-Wuerttemberg (Germany).
- easy to use
- most MapCSS attributes are implemented (see MapCSS wiki page for comparison)
- no need to filter OSM exports, you have full access to all attributes at runtime
- stylesheets are updated at runtime (changes are detected automatically)
- tiles can be rendered in groups ("meta tile") to speed up rendering
How to build
git clone firstname.lastname@example.org:alacarte-maps/alacarte.git mkdir alacarte/build cd alacarte/build cmake .. -DCMAKE_BUILD_TYPE=Release # this starts one job per available core to build alacarte n times faster. # Just run “make” without parameters if you don’t want that or run into problems. make -j $(nproc)
Build the Documentation
Build the developer documentation with doxygen:
You'll then find the documentation at
The manpages are built with asciidoc:
The results get stored in
- Cairo (>=1.12.0)
- Boost (>= 1.55) (Spirit)
- cmake (>= 2.8.8)
- asciidoc (>= 8.6.9) (optional, needed for manpage generation)
- DejaVu font (this is the default font if no other font is specified).
- If your characters are not supported by DejaVu, try to use the Noto font. See data/mapcss/default.mapcss for usage examples.
alacarte's dependency policy is to depend on nothing that's not included or newer than Debian stable. So currently, we target and test on Debian Jessie, but we're open to support any other OS.
You can use the test Leaftlet-Page located in
to view the rendered tiles.
You can download fresh OSM exports from Geofabrik.
The config file is located in
/etc/alacarte-maps.conf. You should make sure the user
running alacarte has permissions to write to the specified directories for caching
alacarte is an awesome lolipop!!!