<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="blue" vlink="purple">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p>Hi Mike,</p>
<p><br>
</p>
<p>looks good to me. Just one point: <br>
</p>
<p>Tests against bit flags should not use if (a & b > 0) , better use (a & b != 0). The same for (a + b+ c) , bettr use (a | b | c).</p>
<p>The integer value for for flag emergency is -128.<br>
</p>
<p><br>
</p>
<p>See modified version of the patch , I've also compiled a binary with it:</p>
<p><a id="LPlnk354385" href="http://files.mkgmap.org.uk/download/307/mkgmap.jar" class="OWAAutoLink">http://files.mkgmap.org.uk/download/307/mkgmap.jar</a></p>
<p><br>
</p>
<p>I did not understand this comment:<br>
</p>
<div>//ignore highways that do not meet with a road<br>
</div>
<p></p>
<p><br>
</p>
<p>BTW: The styles which add multiple routable ways for one OSM way will probably never use</p>
<p>--check-roundabouts, and I assume that Garmin software will never show reasonable exit counts for those styles
<br>
</p>
<p>@Minko: Maybe this could explain  the crashes when routing near roundabouts with your style?
<br>
</p>
<p><br>
</p>
<p>Gerd<br>
</p>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>Von:</b> mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Mike Baggaley <mike@tvage.co.uk><br>
<b>Gesendet:</b> Sonntag, 7. August 2016 22:41:45<br>
<b>An:</b> 'Development list for mkgmap'<br>
<b>Betreff:</b> Re: [mkgmap-dev] [Patch v2] improve roundabout checks</font>
<div> </div>
</div>
<div>
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Hi Gerd, please find attached a version 3 patch, that seems to me to provide everything we need at the moment. It provides two warning
 messages  of forms “Roundabout is connected to more than one road at…” and “Roundabout is connected to a road and other highways at…”. It does not warn for multiple highways where there is no road with car access (e.g. a cycleway that goes straight across
 a roundabout). Please commit if everyone is happy.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Mike<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Mike Baggaley [mailto:mike@tvage.co.uk]
<br>
<b>Sent:</b> 05 August 2016 08:22<br>
<b>To:</b> 'Development list for mkgmap' <mkgmap-dev@lists.mkgmap.org.uk><br>
<b>Subject:</b> RE: [mkgmap-dev] [Patch v2] improve roundabout checks<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">HI Gerd, the rationale behind choosing car in determining whether a way is an exit was that I was expecting most people when counting
 exits would only include exits that are normal roads. If we include cycleways in the test, we run the danger of false positives where a cycleway runs alongside a road and ends at the roundabout. I don’t think it is possible to get an absolutely perfect solution.
 For me, Incorrect exit hints is the prime target – though it is not clear what we should do if the optimum layout for Garmin does not follow OSM rules. It is perhaps questionable what should happen when a cycleway meets a roundabout, so it seems more reasonable
 to not flag these up. We could count ways with cycling access but no car access separately and flag a slightly different warning to distinguish them. Or we could count ways with no car access but  access to other vehicles or cycles. My prime target would be
 to separate those that can be easily corrected from those that are questionable, so I can attempt to reduce the former to zero without having to evaluate all the questionable ones.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Mike<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Gerd Petermann [<a href="mailto:GPetermann_muenchen@hotmail.com">mailto:GPetermann_muenchen@hotmail.com</a>]
<br>
<b>Sent:</b> 05 August 2016 05:53<br>
<b>To:</b> Development list for mkgmap <<a href="mailto:mkgmap-dev@lists.mkgmap.org.uk">mkgmap-dev@lists.mkgmap.org.uk</a>><br>
<b>Subject:</b> Re: [mkgmap-dev] [Patch v2] improve roundabout checks<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div id="divtagdefaultwrapper">
<p style="background:white"><span style="color:black">Hi Mike,<o:p></o:p></span></p>
<p style="background:white"><span style="color:black"><o:p> </o:p></span></p>
<p style="background:white"><span style="color:black">as a cyclist I wonder why you treat cars that special. From the previous post I thought that we<o:p></o:p></span></p>
<p style="background:white"><span style="color:black">may ignore pedestrian-only ways. <o:p></o:p></span></p>
<p style="background:white"><span style="color:black">Besides that some style authors use "car routing" to distinguish between racing bikes and
<o:p></o:p></span></p>
<p style="background:white"><span style="color:black">normal bikes. Not sure if that can cause problems here. <o:p></o:p></span></p>
<p style="background:white"><span style="color:black">I am unsure if we want to flag ways which are wrong reg. OSM rules or if we try to find<o:p></o:p></span></p>
<p style="background:white"><span style="color:black">roundabouts were the Garmin algo will produce false exit hints.<o:p></o:p></span></p>
<p style="background:white"><span style="color:black"><o:p> </o:p></span></p>
<p style="background:white"><span style="color:black">Gerd<o:p></o:p></span></p>
</div>
<div class="MsoNormal" align="center" style="text-align:center">
<hr size="2" width="98%" align="center">
</div>
<div id="divRplyFwdMsg">
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:black">Von:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:black"> mkgmap-dev <<a href="mailto:mkgmap-dev-bounces@lists.mkgmap.org.uk">mkgmap-dev-bounces@lists.mkgmap.org.uk</a>>
 im Auftrag von Mike Baggaley <<a href="mailto:mike@tvage.co.uk">mike@tvage.co.uk</a>><br>
<b>Gesendet:</b> Donnerstag, 4. August 2016 23:40:38<br>
<b>An:</b> <a href="mailto:mkgmap-dev@lists.mkgmap.org.uk">mkgmap-dev@lists.mkgmap.org.uk</a><br>
<b>Betreff:</b> Re: [mkgmap-dev] [Patch v2] improve roundabout checks</span> <o:p>
</o:p></p>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">HI Gerd, that looks like a good start. The attached patch improves on it slightly by ignoring highways that do not have access for
 cars.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Mike<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Gerd Petermann [<a href="mailto:GPetermann_muenchen@hotmail.com">mailto:GPetermann_muenchen@hotmail.com</a>]
<br>
<b>Sent:</b> 03 August 2016 14:40<br>
<b>To:</b> <a href="mailto:mkgmap-dev@lists.mkgmap.org.uk">mkgmap-dev@lists.mkgmap.org.uk</a><br>
<b>Subject:</b> [mkgmap-dev] [Patch v1] improve roundabout checks<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div id="divtagdefaultwrapper">
<p style="background:white"><span style="font-family:"Calibri",sans-serif;color:black">Hi all,<o:p></o:p></span></p>
<p style="background:white"><span style="font-family:"Calibri",sans-serif;color:black"><o:p> </o:p></span></p>
<p style="background:white"><span style="font-family:"Calibri",sans-serif;color:black">attached is a patch for the roundabout checks. It adds a test that will warn when
<o:p></o:p></span></p>
<p style="background:white"><span style="font-family:"Calibri",sans-serif;color:black">a node on a roundabout is connected to more than one routable way
<o:p></o:p></span></p>
<p style="background:white"><span style="font-family:"Calibri",sans-serif;color:black">(ways which are not accessable are not counted, e.g. highway=construction with the default style)<o:p></o:p></span></p>
<p style="background:white"><span style="font-family:"Calibri",sans-serif;color:black">The check is only performed when option<o:p></o:p></span></p>
<div>
<p class="MsoNormal" style="background:white"><span style="font-family:"Calibri",sans-serif;color:black">--check-roundabouts is used, you have  to enable logging to see the result.<br>
The check is implemented in class RouteNode, so a config line in logging.properties might be<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="background:white"><span style="font-family:"Calibri",sans-serif;color:black">uk.me.parabola.imgfmt.app.net.RouteNode.level=WARN
<o:p></o:p></span></p>
<p style="background:white"><span style="font-family:"Calibri",sans-serif;color:black"><o:p> </o:p></span></p>
<p style="background:white"><span style="font-family:"Calibri",sans-serif;color:black">A binary based on r3688 is here:<o:p></o:p></span></p>
<p style="background:white"><span style="font-family:"Calibri",sans-serif;color:black"><a href="http://files.mkgmap.org.uk/download/306/mkgmap.jar" id="LPlnk690265">http://files.mkgmap.org.uk/download/306/mkgmap.jar</a><o:p></o:p></span></p>
<p style="background:white"><span style="font-family:"Calibri",sans-serif;color:black"><o:p> </o:p></span></p>
<p style="background:white"><span style="font-family:"Calibri",sans-serif;color:black">Note that this check is very basic, it doesn't ignore when the road is going straight through the roundabout<o:p></o:p></span></p>
<p style="background:white"><span style="font-family:"Calibri",sans-serif;color:black">or when it builds a tagent. If you think that this produces too many false warning I may add
<o:p></o:p></span></p>
<p style="background:white"><span style="font-family:"Calibri",sans-serif;color:black">code for this. <o:p></o:p></span></p>
<p style="background:white"><span style="font-family:"Calibri",sans-serif;color:black"><o:p> </o:p></span></p>
<p style="background:white"><span style="font-family:"Calibri",sans-serif;color:black">Gerd<o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</body>
</html>