Hello,

I would need to get a whole world offline map, ideally from zoom 0 to zoom 12. That map will have to be delivered with my application.

I may need to have a specific rendering for this. Basically, I will need country borders, main cities, main roads, topographic lines .. but not much more

If possible, I would prefer to store offline tiles rather than having to maintain my own offline server (delivering an offline server with my application seems too complicate for end user)

What should I do, what is the best for my needs ?

1/ If I understand well, the whole world from zoom 1 to 12 would take 11 193 000 tiles.

With a ratio of 70%sea and 30% land, I would have 7 835 100 sea tiles. With a size of 1kb per sea tile, that would make 7 terra bytes of data, only for seas .... which is totally not efficient to store. Do you agree with my calculation ?

=> If I want to store tiles, I need to reduce my expectations and get only zoom 10 or even better, 9

Then, what would be the best way to get the tiles ?

2/ Build my own tile server using this Switch2Osm tutorial and setup the rendering I need, then download my tiles from it

3/ Do the same but using a docker container as explained also on SwitchToOsm

4/ Render the tiles using tools like Maperitive

5/ Find a server on the web that has a rendering close to what I need and contact them in order to directly download the tiles from it

6/ Another solution (based on offline tiles or any other easy offline rendering solution that I would not know?)

Thanks a lot in advance for your help,

Have a great day

Antoine

asked 05 Nov '20, 10:08

JoPich's gravatar image

JoPich
11112
accept rate: 0%


I would simply store the tiles (more below) in MBTiles format (which is simply a SQLite database), see https://github.com/mapbox/mbtiles-spec https://wiki.openstreetmap.org/wiki/MBTiles there are tons of tools to manipulate them and whatever your application is, it simply needs SQLite support to access the tiles.

As to the tiles themselves, while on the one hand you could go for raster tiles that you've pre-rendered the alternative would be to generate vector tiles and render them with mapbox-gl or similar. The advantage is extra flexibility with styling (as they are rendered on the fly) and further that you don't need the full tile stack. Pre-split/rendered vector tiles can be got for example here: https://openmaptiles.org/

Depending on your target platform, an other alternative could include mapsforge https://github.com/mapsforge/mapsforge

permanent link

answered 06 Nov '20, 10:10

SimonPoole's gravatar image

SimonPoole ♦
42.6k13310671
accept rate: 19%

Sea tiles are mostly smaller in size, about 400bytes if you talk about raster tiles.

Even with 1kb per sea tile you miscalculated ~ 8 million sea tiles times 1kb, which would be around 8GB not 8TB.

E.g. I do have produced an offline tile set from zoom 0 to 13 that accounts for about 375 GB in total size at about 100 million tiles.

Depending on your style needs you would have to go with 2) or 5) or 6) (I can't say anything about 4) as I haven't done this yet).

permanent link

answered 05 Nov '20, 11:20

Spiekerooger's gravatar image

Spiekerooger
1.7k1329
accept rate: 17%

edited 05 Nov '20, 11:24

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×102
×15

question asked: 05 Nov '20, 10:08

question was seen: 640 times

last updated: 06 Nov '20, 10:10

powered by OSQA