I am trying to choose the best file format for maps that meets these requirements:

  1. There are command line tools to convert from .osm data
  2. Are compact enough for mobile devices and internet download
  3. Have the ability to be fed into a routing engine.

I am aware of .shp, geojson, spatialite and the proprietary ctm1. Any other formats I should check out or opinions on the ones I mentioned?

3 Answers 3


You have not specified any mobile platform so i am answering here for the most popular android platform.

If you want to render the map in android device you can then use mapsforge library. There is a plugin for osmosis called mapwriter that will help you convert the .osm data into .map data which can be rendered using the mapsforge library. .map is a binary format and can be used for fast on device rendering on mobile devices with limited processing power. The sad part however is that you cannot feed this data to a routing engine but there is a workaround for this. You can use gharphhopper , which is an open source java routing engine. You have command line tools to create graphhopper graph files which you can use to query using gharphhopper API. The great thing about this is that it will enable you to do routing without being connected to the internet.

I have been working with the kathmandu data and the data for kathmandu(the map file and the graphs) is just over 10 MB which is really cool.

  • Thank you for your answer. Actually I was referring to iOS. I had to go with a commercial SDK finally. I am aware of the solutions you mentioned. Android seems to be more mature in this area.
    – Foti Dim
    Apr 8, 2014 at 20:26

I've had a lot of success with the Mapsforge library.

  • They have writer that is a plugin to osmosis.
  • They have a Compact file format for fast on-device rendering of OpenStreetMap data.
  • There is an aligned project for routing, Graphhopper, which I've found to be quite user friendly.

I think every routing engine (not only mobile ones) defines its own format as a database or even a geojson is too suboptimal for this purpose. Have a look: http://wiki.openstreetmap.org/wiki/Routing#Mobile_Device_software

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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