Design your own cartography, keep our tiles underneath
Change the colours, the labels and the whole palette in the browser, or edit the style JSON directly. Same tiles, your design. Drag the slider to see two styles over the same ground.
Three ways in, depending on how deep you want to go
MapMaker edits any of the published styles in the browser and exports a
finished style.json. In our opinion it is among the best map style
editors available right now, and it is free to use with these tiles.
Easy Mode
Sliders, colour pickers and switches for the changes most people want: palette, label density, terrain, and feature groups like roads, water, buildings and points of interest. No JSON at any point.
Photo-to-Map
Upload a photo or a logo and MapMaker derives a palette from it. The quickest way to get a map that sits with a brand image or a mood board instead of fighting it.
Expert Mode
The underlying MapLibre style.json, with live validation. Click a
feature on the map to find which layer draws it and jump straight there.
Errors show inline and block saving until they are fixed.
Every map using these tiles keeps the Maptoolkit logo and the copyright line visible, whatever the styling. The attribution guide covers the exact requirement and the drop-in plugins for MapLibre and Leaflet.
Fork a style that already works
A blank style.json is a lot of work before it looks like anything.
All seven styles are published, along with their -3d variants and
13 language versions, so the shorter route is to take the closest one and change
what you need.
# The published styles, under the Community License
git clone https://github.com/maptoolkit/maptoolkit.org
# summer, winter, hiking, cycling, street, light, dark
# plus 3d/ and one directory per language
Cycling carries 134 layers and Hiking 132. A city map will never draw most of them, and deleting the ones you do not need leaves less JSON to parse and less for the renderer to weigh on every frame.
Put the JSON anywhere, point the sources at us
A style is one JSON file. Host it on your own domain, in a bucket, next to your app, wherever suits. Its sources keep pointing at our tiles, glyphs and sprites, and there is nothing to register.
{
"version": 8,
"glyphs": "https://fonts.maptoolkit.org/{fontstack}/{range}.pbf",
"sources": {
"mtk": {
"type": "vector",
// Reference the TileJSON, not a tile URL. The vector tiles sit
// behind a dated path that changes when the data is rebuilt, and
// this indirection is what keeps your style working across it.
"url": "https://tiles.maptoolkit.org/mtk.json"
}
},
"layers": [ /* yours */ ]
}
The copyright line comes out of that TileJSON, which carries the attribution string, so most renderers show it without you writing it. The logo is a separate element you place, and the attribution guide covers both.
What you cannot change
The attribution
The logo and the copyright line stay visible at every size and zoom level. Restyle everything around them, place them where they suit your layout, but they do not come off. That is the condition the tiles are free under.
Your own typeface
280 faces across about 20 families are served, serif and slab and display and
monospace among them, so there is plenty of range. What is not possible is
adding a font: a brand typeface means hosting your own glyphs and pointing
glyphs at them.
Frequently asked questions about custom styles
Which fonts can I use in my own style?
Far more than the published styles use. The glyph endpoint serves 280 named faces across about 20 families, and they are not all sans: Alegreya, Epunda Slab, Fraunces Soft, Proza Libre, Sanchez and Sansita are serif or slab, Lobster, Berkshire Swash, Bellefair and Grandstander are display or script, and SUSE Mono is monospace. MapMaker's font menu lists the lot.
What there is no path for is uploading a font of your own, so a brand typeface
means hosting your own glyphs and pointing the style's glyphs
property at them.
Will my style break when you update the tiles?
Not if you reference the TileJSON rather than the tile URL. The vector tiles
sit behind a dated path that changes as the data is rebuilt: it read
v31082026 one day and v07092026 the next. The
TileJSON at tiles.maptoolkit.org/mtk.json always points at the
current one, so a source with url set to the TileJSON keeps
working. A source with a hard-coded tiles array pointing at a
dated path will stop returning tiles.
Can I use my own icons and sprites?
Yes. The sprite property in a style is just a list of URLs, and
once you host the style JSON those URLs are yours to set. The published
styles load several sprites from icons.maptoolkit.org, so the
simplest route is to keep those and add your own alongside rather than
replacing them and losing every existing icon.
Can I delete layers I do not use?
Yes, and it is worth doing. Cycling carries 134 layers and Hiking 132, most of which a city map will never draw. Fewer layers means less style JSON to parse and less for the renderer to consider on every frame. Keep the attribution behaviour intact and delete freely otherwise.
Do I need to register my style with anyone?
No. Your style is a JSON file you host wherever you like, and nothing about it is known to us. The tiles, glyphs and sprites it references are fetched by your visitors' browsers exactly as they are for the published styles.
Can I remove the attribution if it clashes with my design?
No. The Maptoolkit logo and the copyright line stay visible at all times, and that is the condition the tiles are free under. Two npm packages place them for you so you are not fighting your own layout, and the attribution guide covers the exact requirement.
Is the tile server itself open source?
No, and it is not self-hostable. What is public: the seven styles and their variants under the Community License, the Maps SDK under BSD-3-Clause, and the attribution plugins under MIT.
What are the rate limits?
Unregistered traffic gets 120 tiles per second sustained and 200 in burst per website, with a 40 tiles per second cap per visitor IP. Cached tiles do not count, and the edge cache absorbs most requests. There is no SLA on the community service, so it is not the right choice behind anything life-safety or billing-critical.
The published styles
Hiking maps
Waymarked route shields, SAC and via ferrata grades, nine path layers and four hillshade passes.
Cycling maps
Numbered node networks, separated cycleways, on-road lanes and MTB trails on their own layers.
3D terrain and buildings
Add -3d for terrain, already configured against a global
elevation model. Street draws buildings in 3D.