openstreetmapmapboxmapniktilemillmbtiles

offline tileserver for whole planet


I'm trying to build an offline tileserver using the planet.osm.pbf files found here and I've hit a bit of a scaling problem.

My first attempt was to render some of this data into an .mbtiles file and serve it with Tilemill. This works very well up to a certain zoom level, but then the size of the pre-rendered tiles explodes. My guess at the appropriate solution is to pre-render tiles down to some reasonable zoom level and then have a mechanism for rendering the remaining zoom levels on the fly. Alternatively, I understand that there are vector-based tiles that are (maybe?) always efficiently rendered on the fly in the browser (mapbox gl does this, I think).

Does anyone know of the best approach to setting up an offline tileserver at this scale? A lot of the other answers I've seen deal with how to serve tiles for a specific city or state, but I'm not coming up with much for showing the whole planet.

Thanks!

EDIT:

Alternatively, if there are other formats in which the planet-wide data is available other than planet.osm.pbf I'm definitely open to hearing about it -- I'm not tied to the specific datasource, I'm just trying to solve the problem.


Solution

  • For task of that scale you will need Mapnik http://wiki.openstreetmap.org/wiki/Mapnik

    1. install mapnik and renderd https://switch2osm.org/serving-tiles/building-a-tile-server-from-packages/ (TileMill as I know uses mapnik, so check maybe you already have it)
    2. import your data into PostGIS (for whole planet it may take a several days and about 300G of hard drive space)
    3. convert your style from TleMill for mapnik
    4. now you have your own render server

    Also there is a docker container with some styles and mapnik+postgis+osm2pgsql playing in one band. https://registry.hub.docker.com/u/dkiselev/nik4web/ May be it could be helpful for you.