Hi!

I am developing an open source map viewer (GPS) application that will work on the OpenMoko platform in Java (http://www.yamamap.org/). It has an own map format, it can convert openstreetmap.org maps and it has a converter for Garmin img format maps too.

Now I am thinking of implementing routing so that he program could propose a route and tell the driver where to turn the car. I am only thinking of offline solutions. I have done some brainstorming on what must be implemented to let it be usable (http://yamamap.wiki.sourceforge.net/concept-routing). It would be nice to generate a storm in your minds too - it is an interesting problem!

My question is how would you implement a routing engine so that it can work efficient on huge slices of OSM (and other) maps even for big distances. These maps are cut from the full OSM planet (that is now about 3G in xml.bz2 format) and one phone owner could have huge areas on the phone offline. So it is obvious that we have to process that data clever to be efficient!

In my opinion source and target selection by name and routing itself would require a database or at least an indexing service. So cities could be searched by name.

The question is what database or indexer should be used. The aspects are:
- lightweight enough for the limited power of portable devices
- Reachable from Java
- Let the indexes be built on the desktop computer and copied on the PDA's flash memory card directly - The PDA can also add indexes (insert custom POI's name or install a new map without the use of the computer)
- portable: so it can be used on Windows XP or even on Windows Mobile later

What database would you use? I was thinking of:
- Java DB (http://developers.sun.com/javadb/)
- Just an indexer - apache Lucene
- A native database - mysql or postgresql


Happy hacking!
Schmidt András


Reply via email to