logo separator

[mkgmap-dev] via ways (rather than nodes) in restrictions

From Marko Mäkelä marko.makela at iki.fi on Sun Apr 3 07:33:31 BST 2011

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



More information about the mkgmap-dev mailing list