via ways (rather than nodes) in restrictions

Hi, Currently via ways are not used by mkgmap to generate turn restrictions. Is this a limitation in the mkgmap code base, or a fault of the underlying Garmin routing data model? If the former, are there any plans to add support for via ways? -- Charlie

Hi Charlie, On Sun, Apr 03, 2011 at 08:53:40AM +0400, Charlie Ferrero wrote:
Currently via ways are not used by mkgmap to generate turn restrictions.
You can thank/blame me for writing the diagnostics for that case. Before my patch, mkgmap used to issue an error for anything else than via nodes. There are quite a few via ways in no_u_turn restrictions on highway=trunk or even in dual carriageway style major streets in cities. I guess that the no_u_turn on motorways could best be mapped by declaring the short sections between ways as access=emergency or similar.
Is this a limitation in the mkgmap code base, or a fault of the underlying Garmin routing data model?
I don't know. As far as I remember, it was Mark Burton who implemented this. He has not been active in the last year or so.
If the former, are there any plans to add support for via ways?
Even if it were a problem of the data model, I guess that we could simulate via ways by duplicating and merging the via way. Consider this example: a->b (straight road) a->via->c (90° turn across oncoming traffic) a->via->A (U turn) (Note that I tried hard to avoid saying "right" or "left" for the a->c, so that this example applies to both drive-on-left and drive-on-right.) How to translate the no_u_turn a->via->A? If we also have no_left_turn or no_right_turn a->via->c, it is simple: no_*_turn a->via would disallow all turns. If we only have the no_u_turn a->via->A but allow the turn a->via->c, we remove the way "via" and merge it to the ways "c" and "A" like this: a->via;c (turning allowed) a->via;A (no turning allowed) Does this sound like a workable plan? As far as I understand, this merging would only take place in the NET section that is used for routing, not in the polylines. Best regards, Marko

On 04/03/2011 12:53 AM, Charlie Ferrero wrote:
Hi,
Currently via ways are not used by mkgmap to generate turn restrictions. Is this a limitation in the mkgmap code base, or a fault of the underlying Garmin routing data model? If the former, are there any plans to add support for via ways?
This is possible. I submitted a preliminary patch a long time a go but it did not work (i.e. stopped mkgmap with an exception) if the via way got split at some point for routing purposes. It is still on my (long) to do list to look into it again but if someone else is interested I can dig up what I have. Thanks, N.
participants (3)
-
Charlie Ferrero
-
Marko Mäkelä
-
Nakor