OpenStreetMap logo OpenStreetMap

Help

Posted by Mashhur on 6 August 2011 in English.

Hi there,
Is there any ways to download this map and use in offline?

Thanks!

Email icon Bluesky Icon Facebook Icon LinkedIn Icon Mastodon Icon Telegram Icon X Icon

Discussion

Comment from z-dude on 6 August 2011 at 05:39

yes, you can get OSM on the Garmin gps's as well as mobile apps on smartphones.
osm.wiki/OSM_Map_On_Garmin/Download

look for osm in your app store

Comment from Sanderd17 on 6 August 2011 at 07:20

Mashhur, how do you want to use the map? If you want to write your own application (for smartphone, computer or web), you can download the pure data in an XML format. The whole planet can be found here: osm.wiki/Planet.osm
And for smaller regions, you can use cloudmade: http://downloads.cloudmade.com/

If you want to use it for Garmin, than alexz gave a good link, and most apps (web and smartphone) took the XML data and transformed into a usable format for them.

As axample, a renderer doesn't have to know which ways are connected, so that information isn't available in the format that mapnik needs. But a router does need that info.

The pure XML format is very rarely used.

Comment from wieland on 6 August 2011 at 14:14

For mobile devices are several apps (at least for iOS):
MapsWithMe, Offmaps, MotionX, OpenMaps, ...)
that can download areas.

Comment from maxolasersquad on 6 August 2011 at 16:30

You can use JOSM (http://josm.openstreetmap.de/) to download map areas on your laptop or netbook for offline use and offline mapping.

Comment from Mashhur on 7 August 2011 at 00:54

Good day everybody!
Thanks so much to reply.
If I give a description for my job, I get airplane positions from radar and should be displayed on the map. It is not a mobile based but windows. I developed my S/W in c#/.NET framework and I should synchronize with any kind of world maps. It would be great if I get open source programs.
Any suggestions to use the map in offline for my this condition?
Operations: Drawing, Rendering, Data exchange between my S/W and map program.

Any helps appreciated! Thanks a lot.
BS Mashhur.

Comment from Sanderd17 on 7 August 2011 at 08:22

Online it would be easy, just convert the positions to a CSV file and create a webpage with the openlayers javascript library to show these positions on any base layer (mapnik, google satellite, bing images ...). There is a lot of info about showing POI with openlayers, and you'd be ready in about 30 minutes.

If you want it offline, then it might be trickier. That means that the PC has to have installed it's own renderer. Most renderers are created to have a big throughput. While if only one user is viewing that map, you need a small latency instead. So that could give problems. I believe TileMill is optimised for a small latency, but the last time I checked it, it only worked on Unix systems. Maybe you could help with a Windows port. It should be easy to transform Tilemill into a tile-viewing app only. For TileMill, it's good if you have a pretty heavy PC. It's optimised for quad-core processors, and you can be sure that they are used pretty heavely.

But anyway, since you need the whole planet, that means that each PC has to have the entire OSM database on their HDD. If you do a quite normal setup, that you have to transform the compressed planet.osm file to a postgis database with osm2pgsql. The process to do this can cost from 12 hours (very high end server) to 8 days depending on the hardware. Those renderers also ask a lot of space from the hard disk.

So I think that a renderer which is strictly separated from the viewer (so that you can use a server-client structure) can't really be used in this context.

So lets take a look at the applications that combine those. The first one that pops into my mind is Navit. It's an open-source multi-platform navigation program that works completely offline. It does the rendering from highly compressed binary map files. You can adapt the rendering via an XML configuration file and you can use separate POI files. The only problem is that it's optimised to view smaller areas. You cannot zoom out to see the whole world at once.

A second one that I think of is OsmAnd. It's an open-source Android app, but it's very modular, so I believe it should be quite easy to get the rendering module out of it and transform it to plain Java. This app is a map viewing/routing application, so it can also render maps when you zoom out a lot. It's less easy to configure than Navit, but it also has POI files and map files. It would ask some coding though. OsmAnd also uses it's own type of compressed map files.

As third program, I should take a look at the Travelling Salesman application. It's a Java app that uses the Osmosis java library to do offline rendering and routing. But it's a while since I last heard of it, so I believe that it's not being developed anymore. But since traveling salesman is only a thin shell above the Osmosis library, you could use it as reference implementation and make your own rendering app.

A last program that I can think of is MapSource from Garmin. This is not open-source (but free to use under certain conditions). You can load POI files into it and OSM maps to view.

If you have any remarks, do PM me, I'll probably won't read this post again (I don't get notifications).

Comment from wieland on 7 August 2011 at 20:03

Maybe you can use tiles, if you need only low zoomlevels e.g. 1-5 for the whole world or only a limited area.

Comment from Mashhur on 8 August 2011 at 02:16

Thanks Sanderd17, now I figured out... You are absolutely right on it.
I am going to choose whether online or wieland's approach. Actually I have already done a demo based on wieland's idea but in order to support more reality, i posted and Sanderd17 helped me a lot. Thanks guys. I appreciate your any helps.

Log in to leave a comment