Hi.

You likely already noticed that I´m in the process of getting a navigation software project going. Now while I wait for some other programmers to join the team and for some info on available maps to arrive, I try to find out what data needs to be in the map files. For a start, this is what I planned to far:

My primary concept is hard to explain without detailed graphics, but I don´t have access to graphics software right now, so I´m goint to try and explain it by words anyway.
When going from town to town, you usually have different levels of maps involved: detailed maps for the streets in the origin and destination cities, less detailed maps for the drive from town to town and probably even less detailed ones when driving across state borders. On my good old Psion S5 organizer, I had two different navigation softwares: Street Planner for the high detail in-town part, Route Planner for the drive from town to town. Now what I really missed there was a way to interface the two, there was no link from the high detailed maps to entry points in the lower detailed maps.
Ok, what I would like to build is a system of different level maps (might be included in the same file though that would make installation tricky). The goal is to make it possible for the user to select the detail level he needs for certain areas. He could install the high detail map for Germany, including all known streets in all known towns, or he could install the low detail map for Germany, showing only streets that go from town to town (like main streets plus freeways) plus the detailed maps for Berlin, Munich and Dortmund, as those are the cities he normally visits.
Now, what should be know about streets?

  1. their name

  2. a unique ID (UID)

  3. their sections (either from end to other street, or from end to end)

    NOTE: to be able to handle streets that describe a long curve, "other
    street" might also be the next section of the same street.


What do we need to know about each section?

  1. a UID

  2. their direction

  3. wether they are one way or not

  4. their road type (small city road or freeway)

  5. their speed limit, if known, else guess it from the type

  6. their adjunct intersection


What do we need to know about intersections?

  1. a UID

  2. which streets (street sections) meet at that point?

  3. when coming from a specific section: Which sections may I enter?

  4. geographic coordinates


Now, how could we identify a possible transition to a higher/lower detail level? Simply by matching UIDs across files would be one way, but we should not need to search through all files, so I guess each data file should have it´s limits (east/west/south/north border) in it´s header, so that we could quickly sort out every file we do not need to serach through.
My idea for searching for the ideal way from one point to another is to do a backward search from the destination to a higher level (lower detail) transition thus finding the last sections of the track, now do a forward search from the source to a higher level, than use those two higher level points for a new search.
Ok, this post got long enough now, so I´m going to stop here. Comments are highly welcome, though this posting should have gone two the upcoming mailing list, if it would exist yet.


cu,
sven
_________________________
proud owner of MkII 40GB & MkIIa 60GB both lit by God and HiJacked by Lord