logo separator

[mkgmap-dev] Turn restrictions with role=via ways

From Marko Mäkelä marko.makela at iki.fi on Mon Mar 24 13:52:47 GMT 2014

Hallo Gerd,

On Sun, Mar 23, 2014 at 06:16:27PM +0100, Gerd Petermann wrote:
>I've created a new branch via_ways to support this.
>It is nearly done, but I have to find solutions for
>some edge cases like via ways that cross tile boundaries.
>Also some routines like RoadMerger are not yet fully tested.

OK, let me know when you would like some testing.

FWIW, there were 4 relations with role=via ways that were not no_u_turn 
in Finland. I removed or replaced all of these today:

$grep "'via' ways are not supported" mkgmap.log.0|grep -v no_u_turn
2014/03/24 15:25:06 WARNING (RestrictionRelation): 63240004.osm.pbf: 
Turn restriction http://www.openstreetmap.org/browse/relation/2640984 
(at http://www.openstreetmap.org/?mlat=61.510688&mlon=23.777567&zoom=17) 
sorry, 'via' ways are not supported - ignoring restriction 
[type=restriction,restriction=no_left_turn]
2014/03/24 15:25:22 WARNING (RestrictionRelation): 63240002.osm.pbf: 
Turn restriction http://www.openstreetmap.org/browse/relation/1767298 
(at http://www.openstreetmap.org/?mlat=60.206666&mlon=25.120266&zoom=17) 
sorry, 'via' ways are not supported - ignoring restriction 
[type=restriction,restriction=only_straight_on]
2014/03/24 15:25:22 WARNING (RestrictionRelation): 63240002.osm.pbf: 
Turn restriction http://www.openstreetmap.org/browse/relation/67571 (at 
http://www.openstreetmap.org/?mlat=60.168673&mlon=24.935049&zoom=17) 
sorry, 'via' ways are not supported - ignoring restriction 
[except=psv;bicycle,type=restriction,restriction=only_left_turn]
2014/03/24 15:25:22 WARNING (RestrictionRelation): 63240002.osm.pbf: 
Turn restriction http://www.openstreetmap.org/browse/relation/1745548 
(at http://www.openstreetmap.org/?mlat=60.190691&mlon=24.962903&zoom=17) 
sorry, 'via' ways are not supported - ignoring restriction 
[type=restriction,restriction=only_right_turn]

I got the list with this patch:

Index: src/uk/me/parabola/mkgmap/reader/osm/RestrictionRelation.java
===================================================================
--- src/uk/me/parabola/mkgmap/reader/osm/RestrictionRelation.java	
(revision 3116)
+++ src/uk/me/parabola/mkgmap/reader/osm/RestrictionRelation.java	
(working copy)
@@ -281,7 +281,7 @@
		}
  
		if (result && viaWay != null) {
-			log.warn(messagePrefix + "sorry, 'via' ways are 
			not supported - ignoring restriction");
+			log.warn(messagePrefix + "sorry, 'via' ways are 
not supported - ignoring restriction " + toTagString());
			result = false;
		}
		return result;

IMO, a role=via way in anything else than restriction=no_u_turn is 
likely a mapping error.

The fixes I applied:

2640984: Split the 'via' way, make the part of it oneway. It is an 
oneway link between dual oneway lines in a T crossing. After the fix, 
you cannot drive against the oneway direction, and the no_left_turn 
restriction becomes redundant.

1767298: Remove the restriction. It was redundant, as the other turning 
target was tagged with oneway=yes, prohibiting the turn. In fact, all 
the ways in the T-shaped crossing were tagged oneway=yes.

67571: Remove one of the ways, make the role=via way the role=from way, 
and add a role=via node.

1745548: Make the left-turning lane branch earlier, according to the 
lane markings that are visible in Bing imagery. No turn restriction is 
needed, because the oneway=yes takes care of it.

BTW, while you are doing this, you could introduce warnings for 
redundant turn restriction relations (prohibiting turns against oneway 
direction).

Best regards,

	Marko


More information about the mkgmap-dev mailing list