[OSM-dev] Custom tileset
ajt1047 at gmail.com
Sat Mar 19 14:40:40 UTC 2016
On 18/03/2016 19:57, Amaroussi (OpenStreetMap) wrote:
> I thought it may be useful to pitch my idea here, but I plan to develop two custom sets of tile sets that use the standard OSM layer, but with “British” and “Greek” colours respectively.
It's certainly possible; I've got something very like that sat on a VM
on a desktop PC about five feet away :)
> Depending on how much technical expertise I require for this, I plan to develop these tile sets in response to demand from the UK community in response the the change of colours recently.
> The British tile set will have the old colours before the changeover to the red-yellow scheme, and it initially cover Great Britain and the Republic of Ireland only.
> The Greek tile set will have green for motorways, two shades of blue for national roads, red for provincial roads and yellow for other connecting roads to villages, and it will initially cover Greece. This stylesheet reflects the road signs on motorways and national roads, with the rest being based on the old stylesheet.
> Other than the change of colour, I plan to make the custom tile set stylesheet a dependency of the main stylesheet, to minimise the need to update them often.
> I desire that the tiles update about five minutes after an edit, like the main map, so it does not turn out to be a half-baked alternative.
First, start with
. That'll talk you through the basics of setting up a tile server. I'd
start with something small (an English county, perhaps) so that when you
need to reload because something has gone wrong, you can do so quickly.
Initially I'd stick as close as possible to the instructions as written,
so that if something goes wrong you can be reasonably sure that it was
something that you misread, not something different you tried to do.
I'd also initially use a virtual machine of some sort, perhaps running
on a desktop or laptop you have - that way it's possible to revert to a
previously working setup easily if something goes wrong. For small
areas a couple of Gb of memory and around 20Gb disk should be enough -
though when you start wanting to render UK and Greece you'll need more
(at a guess, 8Gb memory might be enough - but someone else would need to
I ran through the instructions a couple of months to go "soup to nuts"
and they worked; the only issue I'm aware of since then is that the
"Installing osm2pgsql" bit needs to be changed slightly due to some
recent commits there. Details are on
https://github.com/openstreetmap/osm2pgsql , but if you have problems
with that just get a couple-of-months-old version of osm2pgsql from git
and run with that.
After that you should have a tile server and should be able to browse to
your equivalent of http://b.tile.openstreetmap.org/0/0/0.png . Do be
aware that creating low zoom tiles on a small server can take a while
(minutes) - so don't expect pretty pictures immediately. The switch2osm
instructions describing looking at logs to watch requests for tiles to
You'll want a basic map viewer - I'd use Leaflet for that. See
actually contains rather more details than you need - just look at the
links to the Leaflet site) and there are lots of examples, tutorials
etc. on http://leafletjs.com/ . As an alternative, if you want to cheat
you can have your tiles behind osm.org - see
By this stage you've got a database and some "OSM Bright" tiles. You'll
want to add a new tile layer initially consisting of OSM's "standard
The "standard style" is over at
https://github.com/gravitystorm/openstreetmap-carto , and there's a link
to the installation document from the readme there. In order to add
more tile layers to your "renderd.conf" file (which you will have
created during the "manually-building-a-tile-server-14-04" process),
have a look at these questions:
OSM's standard style installation instructions "just worked" for me when
I last tried them, which was last year just before OSM moved to "orange
Next, you'll want to add your new tile layer to your Leaflet site -
that's pretty straightforward and many or most of the Leaflet examples I
mentioned above use multiple tile layers.
After that, it's on to changing road colours. At the top of
are a bunch of colours. Initially, I'd try changing those to different
values in your copy of the file, rerunning the "carto" command line
(which you'll have previously run with the styles you've setup already),
deleting tiles you've previously generated and seeing how the new
colours look. As a background to "managing" tiles, see
When you're happy after having done this twice (once for the UK colours,
once for Greek ones) you'll want to set up updates on the fly. I use a
for that - it's modified slightly to run in a crontab, and also to call
"trim_osc.py" from https://github.com/Zverik/regional to only apply
updates within a bounding box that I'm interested in. The changes are
pretty obvious, but I can post a copy somewhere if it helps.
Slightly confusingly, the "setting up updates" bits are over at
on the switch2osm site - but it's actually quite straightforward to do.
Now it's all working "all" you need to do is to scale it up to a large
area, containing UK data and Greek data. I suspect you'll need to use
something like osmosis to cut a larger file down to include the data you
want (or to combine two separate files). There's lots of information
about osmosis around the place; I wrote some at
(but not all of that will be relevant for you if you're not changing
tagging on the fly on the way into the database). Be aware that you'll
want to load it in one go - if you load the UK data into the database,
and then the Greek data, you'll end up with only the Greek data on there.
Great! You've now got a server with UK and Greek map tiles on it, and a
website that users can switch between UK and Greek colours. Next you'll
have to think about "what happens if people try and scrape all my
tiles". I suspect that you'll have to have a way of detecting problem
users and preventing them from doing things that they should not.
Unfortunately I can't help with that bit, but I'm sure that there are
plenty of people on this list that can because they already do it.
That, I think is everything (or at least the minimum you can get away
with). It's a bit "Monty Python how to play the flute"*, but I suspect
any more detail would make it impossible to read in one go. I also
suspect that there will be better places to link to explaining some of
the steps, too - I'm sure that people will be able to help there.
* you blow across the hole and move your fingers up and down
More information about the dev