<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Hi Nicolas,<br>
      <br>
      this limitation will be removed with solving this issue:<br>
      <a class="moz-txt-link-freetext" href="https://github.com/graphhopper/graphhopper/issues/27">https://github.com/graphhopper/graphhopper/issues/27</a><br>
      <br>
      BTW: nodes between edges in graphhopper are only stored in
      wayGeometry (see GraphStorage), not as real nodes. This was
      introduced as this speeds up querying a lot and also space is
      reduced.<br>
      <br>
      Regards,<br>
      Peter.<br>
      <br>
    </div>
    <blockquote
cite="mid:0904cd274ed948be93e5c5b22f38ff3f@AMXPR05MB118.eurprd05.prod.outlook.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=ISO-8859-1">
      <meta name="Generator" content="Microsoft Word 14 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
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.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Texte de bulles Car";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";
        mso-fareast-language:EN-US;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.TextedebullesCar
        {mso-style-name:"Texte de bulles Car";
        mso-style-priority:99;
        mso-style-link:"Texte de bulles";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
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]-->
      <div class="WordSection1">
        <p class="MsoNormal"><span lang="EN-US">Hello,<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">I noticed that routes
            are computed only between the graph’s nodes, and the route
            does not go close enough to the actual GPS points.<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">I also noticed that
            there is a small mistake when selecting the start/end node
            when the GPS point falls on an “one way” edge.<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">The current behavior is
            to find the closest edge to the lon/lat coordinates and then
            find the closest node on this edge to the lon/lat.<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">When an edge is one way,
            you don’t have to take the closes node on the edge but the
            node that will respect the traffic flow.<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">Mean if your starting
            point fall on an one way edge, you’ll have to start the
            routing form the end point of this edge, no matter the
            starting point may be closer to your GPS coordinates.
            Indeed, if you go from you gps point to the start node,
            you’ll have to violate the one way restriction.<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">(see attachment as
            example)<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">In this picture we also
            see the first thing I mentioned : the geometry lacks of
            accuracy between nodes and GPS coordinates ; the blue line
            does not “stop” exactly at the two little flags representing
            my GPS coordinates. (green flag: start, red flag : end)<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">I started digging into
            the code in order to solve these two issues and I came up
            thinking that the whole API needs a bit of rework.<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">Right now the node
            resolution returns a node ID but I think it should rather
            return an EdgeIterator of the matched edge.<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">With this edge, it’s
            possible to find the appropriate start/end node depending on
            the lon/lat of the point and the fact that edge is one way.
            It’s also possible “finish” the road and compute the
            missing/exceeding parts of the road.<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">Am I missing something ?<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">Do you think that my
            point of view is correct ?<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">Thank you<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
            style="font-size:10.0pt;color:#1F497D;mso-fareast-language:FR-BE"
            lang="EN-US">Nicolas GILLET<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="font-size:10.0pt;color:#1F497D;mso-fareast-language:FR-BE"
            lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><b><span
              style="color:#1F497D;mso-fareast-language:FR-BE"
              lang="EN-US">Market-IP –</span></b><i><span
              style="color:#1F497D;mso-fareast-language:FR-BE"
              lang="EN-US">
            </span></i><i><span
              style="color:#404040;mso-fareast-language:FR-BE"
              lang="EN-US">Creating Mobile Intelligence</span></i><span
            style="color:#1F497D;mso-fareast-language:FR-BE"
            lang="EN-US"><o:p></o:p></span></p>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
GraphHopper mailing list
<a class="moz-txt-link-abbreviated" href="mailto:GraphHopper@openstreetmap.org">GraphHopper@openstreetmap.org</a>
<a class="moz-txt-link-freetext" href="http://lists.openstreetmap.org/listinfo/graphhopper">http://lists.openstreetmap.org/listinfo/graphhopper</a>
</pre>
    </blockquote>
    <br>
    <br>
    <pre class="moz-signature" cols="72">-- 
GraphHopper.com Your way is our destination!</pre>
  </body>
</html>