4

I am trying to generate vector files and store them in a MBtiles file to make them available for download within the app. (I have also tried with raster tiles and TileMill but the file were too large: 400MB for greater london up to zoom 17, 188MB with jpeg 70% compressed)

But I'm getting a 1.3GB file for the sole greater London.

My questions:

  • Vector tiles are supposed to be much smaller than raster ones, any reason why I would get such an abnormally large file. (Nutiteq or Skobbler have packages of about 30MB for greater london)

  • If I do manage to generate them, what would be a good way to have them integrated in android and in iOS? Apparently this is not possible yet using MapBox SDK: https://github.com/mapbox/mapbox-gl-native/issues/584

OsmAndMapCreator allows to generate vector tiles in the OBF format which I don't think is possible to use outside of OsmAnd.

closed as too broad by PolyGeo Oct 18 '17 at 12:00

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • Why do you need vectors? what's the Use case for that? – Devdatta Tengshe Jun 18 '15 at 7:43
  • I'm trying to get a small package to download and raster tiles take a lot of space (200MB at least for greater london) – Tristan Jun 18 '15 at 8:44
  • I have not yet tried it myself, but wiki.openstreetmap.org/wiki/Mapsforge could be an alternative solution to create vector maps. – AndreJ Jun 18 '15 at 9:11
2

Vector data is not automatically smaller than raster. You need to filter out carefully what data goes to which zoom level, generalize data for lower zooms, combine polylines/polygons, precalculate some things etc. Even worse - there is no one universal vector, it is style-dependent and you need to change this configuration when you update styles significantly. We (in Nutiteq) spent many man-months to optimize it and to get it right for OSM data, and as far as I've heard from Skobbler and Mapbox guys they have done the same.

With raster it is simpler to have control over size - in your mbtiles you reduce everything to pixels and don't realize that for lower zooms you are actually requesting a lot of data from the database to render it. If you transfer all this vector to client, then you get huge vector tiles.

So I have no good answer for you. I suggest to use other vector tile vendors, or get someone as consultant who has optimized it already.

  • Thanks for the explanation, I'm guessing there is no open-source project that I could use to do this kind of processing work? – Tristan Jun 18 '15 at 9:04
  • Have you tried Mapsforge? – AndreJ Jun 18 '15 at 9:13
  • Thanks, I did try Mapsforge and managed to generate a 23MB .map file for greater london. This might be a possibility for Android but there is not support for iOS – Tristan Jun 18 '15 at 13:01
  • You can take a look at wiki.openstreetmap.org/wiki/Apple_iOS for iPhone solutions. Unfortunately I can not help you further on those devices. – AndreJ Jun 21 '15 at 6:14
2

I highly recommend to check our OSM2VectorTiles project: http://www.osm2vectortiles.org/.

It does offer a free download of ready to use vector tiles compatible with MapBox SDKs and other MVT clients (such as OpenLayers).

London has 142 MBytes, for unlimited zooming with all streets information, styleable the way you want:

http://osm2vectortiles.org/downloads/

You can also try the OSM2VectorTiles mobile apps for Android / iOS to see the demo of how the tiles can be used online or offline.

  • I downloaded the vector file but it's not working in OSMDroid MapView. Can you please help me/ – Mukeshkumar S Sep 11 '17 at 7:31
  • It can't work because OSMDroid required raster tiles. You have download vector tiles. Try our mobile app: openmaptiles.org/mobile. – Klokan Technologies GmbH Sep 12 '17 at 8:03

Not the answer you're looking for? Browse other questions tagged or ask your own question.