0

Sorry if this question has already been asked, but I need your help.

In program that we are developing we need to integrate maps. Here are the requirements that are put for integration:

  1. Maps should be off-line, no access to online
  2. Must be present all world, so the user can go anywhere as on website http://www.openstreetmap.org/
  3. Maps must to be integrated(embedded) into the program(no third-party systems install)
  4. Maps data should be in reasonable aisles
  5. Maps need to work on the user's computer(not server configuration)

I'll add that we at this moment interested in the rapid integration of(a deadline) and again, our program is developed under the Java for desktop. Also we interested in free solutions.

As I understand it we need three solutions:

  1. Database that can contain info about entire planet(from planet.osm file)
  2. Lib that can render(on the fly) a piece of info from database into the tiles
  3. Lib that shows renders results to user

Please help in choosing solutions/libraries and specify the way in which these things have already been made.

6
  • 3
    The current planet.osm is 400 GB large. I doubt that you can handle that amount easily and fast. The data is usually stored in a POSTGIS database.
    – AndreJ
    Commented Dec 30, 2013 at 12:13
  • Firstly, here planet.osm.org writed that current size of planet.osm file 32 GB, if I understand it correctly. Secondly, as I mentioned earlier, we needs an embedded solution and as I understand, POSTGIS cannot be embedded into app. Commented Dec 30, 2013 at 12:23
  • 4
    The 32GB are compressed for transport over the web, not usefull to acess the data quickly.
    – AndreJ
    Commented Dec 30, 2013 at 12:49
  • sounds like an offline version of osm-3d.org/Start.en.htm
    – Mapperz
    Commented Dec 30, 2013 at 21:33
  • What do you mean by "embedded"? Please be much more specific, and we might be able to help you. What do you mean by "no third-part systems install", given you want to re-use some open source products? Exactly what is the target platform (cpu, display, storage capacity, removable / fixed)? What do you need to render? Do you need to render and cache?
    – BradHards
    Commented Dec 30, 2013 at 23:13

1 Answer 1

5

With my (limited) experience in GIS, I can't recommend you to start such a big task while having very limited amount of time. This might provoke bad solutions and underestimates the amount of small problems with integrating different FLOSS solutions.

After this warning I will try to answer:

First thing is that you shall not store a whole planet dataset on desktops. Even in optimized formats this is still >10GB. Even the import and processing of a worldwide dataset is not a job for common desktops as it takes to much ressources of a workstation.
The common solution (Garmin, Navit, Osmand, ...) is that a user get's planet extracts (by country border/metatiles or free bbox).

Then you need to consider the integration in your app. Should the lib just generate tiles for an existing map component or do you want to add a custom map rendering component?

Even if you described your requirements very good, you should take care, if geocoding (address or POI search), routing, ... might become a requirement in the next release. This would change a lot as it needs other datastructures and increases format size.

You can investigate some libs here: http://wiki.openstreetmap.org/wiki/Frameworks . I try a summary:

  • Mapsforge - wellknown lib (but AFAIK limited for adding layers on top?)

So there is IMHO not much choice. You might consider integrating third party apps like Navit, gosmore, ... that integrate a lot of things in their map format that fits the need of navigation.

You might also consider to create a server (see switch2osm.org )and roll out prerendered map tile packages (zip or MBTiles) to your customers. As our rendering stack has heavy dependencies, I don't recommend to make it part of a application, but maybe a local VM is a way to deal with the problem.

Please also pay attention on the legal aspects, esp. the license of OSM data and of the software you are embedding.
As the comments show you, this is a fairly compley question and taking your deadline into account, you might be happier if you pay for a commercial consulting that has experience of the OSM ecosystem and can pick a good solution that fits for you and integrate it in your tool:
http://wiki.openstreetmap.org/wiki/Commercial_OSM_Software_and_Services
SE is a platform where volunteers spend a few minutes of their time to help on specific questions. I don't think that we can do such a complex task.
Anyway good luck on your project!

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