<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<html><head><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;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:Menlo;}
/* 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;}
span.EmailStyle17
        {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:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang="FR" link="blue" vlink="purple"><div class="WordSection1"><p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Hi,</span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span></p><p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">I have just issued the pull request.</span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Tell me if you have any remarks.</span></p><p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Thanks,</span></p><p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Christophe</span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span></p><div><div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">De :</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Pascal DANEK [mailto:<a href="mailto:pdanek@kds.com">pdanek@kds.com</a>] <br>
<b>Envoyé :</b> jeudi 26 juin 2014 17:12<br><b>À :</b> GraphHopper Java routing engine<br><b>Cc :</b> Christophe Garreau<br><b>Objet :</b> Re: [GraphHopper] Graphhopper sending back "not found"</span></p></div></div>
<p class="MsoNormal"> </p><div><blockquote style="margin-top:5.0pt;margin-bottom:5.0pt"><div><div><p class="MsoNormal">Did you apply this to the whole world or a smaller area?</p></div></div></blockquote></div><div><p class="MsoNormal">
 </p></div><div><p class="MsoNormal">On the planet :-)</p></div><div><p class="MsoNormal"> </p></div><div><blockquote style="margin-top:5.0pt;margin-bottom:5.0pt"><div><div><p class="MsoNormal">sounds good. Would really like to see it in code and invite you to do a pull request!</p>
</div></div></blockquote></div><div><p class="MsoNormal"> </p></div><p class="MsoNormal">OK cool, so we will add some tests and send it !</p><div><p class="MsoNormal"><br><span style="font-size:10.5pt;font-family:Menlo;color:black">—pascal</span> </p>
</div><p class="MsoNormal"> </p><div><div><p class="MsoNormal">Le 26 juin 2014 à 17:08, Peter <<a href="mailto:graphhopper@gmx.de">graphhopper@gmx.de</a>> a écrit :</p></div><p class="MsoNormal"><br><br></p><div><div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Hey Pascal,<br><br>sounds good. Would really like to see it in code and invite you to do a pull request! Did you apply this to the whole world or a smaller area?<br><br>> I have an aditional question: can you tell me where does the autocomplete in <a href="http://graphhopper.com/maps">graphhopper.com/maps</a> come from ?<br>
<br>Also from the <a href="http://graphhopper.com/#enterprise">GraphHopper Web API</a>, where technically the address suggestion comes from the <a href="https://github.com/komoot/photon">photon</a> project which uses ElasticSearch.<br>
<br>Regards,<br>Peter.<br><br></p></div><blockquote style="margin-top:5.0pt;margin-bottom:5.0pt"><p class="MsoNormal">Hello, </p><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">So we finally implemented a change which work for us:</p>
</div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">Compare to:</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">
<a href="http://graphhopper.com/maps/?point=nice&point=saint%20paul%20de%20vence">http://graphhopper.com/maps/?point=nice&point=saint%20paul%20de%20vence</a></p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">
Here is the algorithm :</p></div><div><p class="MsoNormal"> </p></div><div><div><p class="MsoNormal"><span lang="EN-GB">- First loop on nodes using a one-way explorer ;</span></p></div><div><p class="MsoNormal"><span lang="EN-GB">- </span>It gives a list of all the sub-networks with their size ;</p>
</div><div><p class="MsoNormal">- Sort the list by size (bigger first) in order to keep the big networks and kill all small networks (size < minNetworkSize). We can use another property if necessary.</p></div><div><p class="MsoNormal">
<span lang="EN-GB">- </span>For each sub-network (identified by its first nodeid) explore all nodes starting from this nodeId and not in the big networks (>minNetworkSize) and remove them ;</p></div><p class="MsoNormal">
<span lang="EN-GB"> </span></p><div><p class="MsoNormal"><span lang="EN-GB">The algorithm is done twice (forward and backward).</span></p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"><span lang="EN-GB">Let us know if it is something interesting for you. We will fix and add tests and send you a pull request.</span></p>
</div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">I have an aditional question: can you tell me where does the autocomplete in <a href="http://graphhopper.com/maps">graphhopper.com/maps</a> come from ?</p>
</div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">Thanks,</p></div><div><p class="MsoNormal"><br><span style="font-size:10.5pt;font-family:Menlo">—pascal</span> </p></div><p class="MsoNormal"> </p><div>
<div><p class="MsoNormal">Le 19 juin 2014 à 00:04, Bruno Carle <<a href="mailto:bruno.carle@gmail.com">bruno.carle@gmail.com</a>> a écrit :</p></div><p class="MsoNormal"><br><br></p><div><p class="MsoNormal">Hi Petr, </p>
<div><p class="MsoNormal">I agree, visiting and marking the edges sounds like a better solution. But probably more complicated too because of the 'islands' </p></div><div><p class="MsoNormal">Bruno</p></div></div>
<div><p class="MsoNormal" style="margin-bottom:12.0pt"> </p><div><p class="MsoNormal">On Wed, Jun 18, 2014 at 6:11 PM, Peter <<a href="mailto:graphhopper@gmx.de" target="_blank">graphhopper@gmx.de</a>> wrote:</p><div>
<div><p class="MsoNormal" style="margin-bottom:12.0pt">Hey,<br><br>maybe I don't understand the problem but why not mark all visited nodes and remove the remaining?<br>In the parking example an outgoingExplorer can reach all its edges and won't help, but the second step should be done with the ingoingExplorer and will make those nodes none-explorable and so they will be removed.<br>
<br>Regards,<br>Peter.</p></div><div><div><blockquote style="margin-top:5.0pt;margin-bottom:5.0pt"><div><div><div><p class="MsoNormal">Hi,</p></div><p class="MsoNormal" style="margin-bottom:12.0pt">I can imagine a case like this: if a parking consists of several edges, and is connected to the rest of the graph thru a one-way edge, the FixOneWayDeadEnds will not detect it. (FixOneWayDeadEnds only removes edge leading to a point without way out/in )</p>
</div><div><p class="MsoNormal">Maybe something like this happen in your example</p></div><div><p class="MsoNormal"> </p></div><p class="MsoNormal">Bruno</p><div><p class="MsoNormal" style="margin-bottom:12.0pt"> </p></div>
</div><div><p class="MsoNormal" style="margin-bottom:12.0pt"> </p><div><p class="MsoNormal">On Wed, Jun 18, 2014 at 3:52 PM, Pascal DANEK <<a href="mailto:pdanek@kds.com" target="_blank">pdanek@kds.com</a>> wrote:</p>
<div><p class="MsoNormal">Hi Bruno,  </p><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">I updated my version of Graphhopper, updated your code and it now works as expected for Edimbourg and many others, anyway the algorithm. </p>
</div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">However, it still fails for some. </p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">For example: <a href="http://www.graphhopper.com/maps/?point=55.862711%2C-4.432372&point=55.864237%2C-4.251806&locale=fr-fr" target="_blank">http://www.graphhopper.com/maps/?point=55.862711%2C-4.432372&point=55.864237%2C-4.251806&locale=fr-fr</a></p>
<div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">It looks like the parking, which is only accessible in one way has not been removed. Any idea why ?</p></div><div><p class="MsoNormal"><br><span style="font-size:10.5pt;font-family:Menlo">—pascal</span> </p>
</div><p class="MsoNormal"> </p><div><div><p class="MsoNormal">Le 18 juin 2014 à 10:58, Bruno Carle <<a href="mailto:bruno.carle@gmail.com" target="_blank">bruno.carle@gmail.com</a>> a écrit :</p></div><div><div><p class="MsoNormal">
<br><br></p><div><div><div><p class="MsoNormal">Hi again Pascal,</p></div><p class="MsoNormal">Please try with astar/astarbi algorithms, as I have not tested with others.</p></div><div><p class="MsoNormal">Bruno</p></div>
</div><div><p class="MsoNormal" style="margin-bottom:12.0pt"> </p><div><p class="MsoNormal">On Wed, Jun 18, 2014 at 10:17 AM, Bruno Carle <<a href="mailto:bruno.carle@gmail.com" target="_blank">bruno.carle@gmail.com</a>> wrote:</p>
<div><div><p class="MsoNormal">Hi Pascal,<br>I downloaded  great-britain-latest.osm.pbf from geofabrik and tried your Edinburg example and it works fine for me.</p></div><div><p class="MsoNormal">Do you have more than one encoder? If yes please check that the directionBitMask are correct.</p>
</div><div><p class="MsoNormal">Otherwise I can not think right now of something else...</p></div><div><p class="MsoNormal">Cheers<span style="color:#888888"><br>Bruno</span></p></div></div><div><div><div><p class="MsoNormal" style="margin-bottom:12.0pt">
 </p><div><p class="MsoNormal">On Tue, Jun 17, 2014 at 11:27 PM, Pascal DANEK <<a href="mailto:pdanek@kds.com" target="_blank">pdanek@kds.com</a>> wrote:</p><div><p class="MsoNormal">Hi Bruno and thanks a lot for sharing, </p>
<div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">However it does not work as expected on my side. I can see all logs saying it removes nodes, but it still not works. For example:</p></div><div><p class="MsoNormal">
 </p></div><div><p class="MsoNormal"><a href="http://graphhopper.com/maps/?point=55.948091%2C-3.36423&point=55.953252%2C-3.188267" target="_blank">http://graphhopper.com/maps/?point=55.948091%2C-3.36423&point=55.953252%2C-3.188267</a></p>
</div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">I guess the Edimbourg drop-off should be removed…</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">or: <a href="http://graphhopper.com/maps/?point=nice&point=saint%20paul%20de%20vence" target="_blank">http://graphhopper.com/maps/?point=nice&point=saint%20paul%20de%20vence</a></p>
</div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">Does it work for you ?</p></div><div><p class="MsoNormal"> </p></div><div><div><p class="MsoNormal"><span style="font-size:10.5pt;font-family:Menlo">—pascal</span> </p>
</div><p class="MsoNormal"> </p><div><div><p class="MsoNormal">Le 17 juin 2014 à 16:32, Bruno Carle <<a href="mailto:bruno.carle@gmail.com" target="_blank">bruno.carle@gmail.com</a>> a écrit :</p></div><div><p class="MsoNormal">
<br><br></p><div><div><p class="MsoNormal">Hi,</p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt">I just wrote a small class that fixes this kind of issues. Basically it looks for nodes where there is a way in but not out (and vice-versa), and disable all edges around the node. It seems to work fine so far. I Think islands will not be a problem but I have not tested it since I don't have any islands on the area I am working on.</p>
</div><div><p class="MsoNormal">For cases when there is no way out but there is a way in, I believe most likely it is a problem on the map.</p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt">For cases when there is no way in but a way out , I believe the map is correct: e.g. <a href="http://www.openstreetmap.org/way/27565747" target="_blank">http://www.openstreetmap.org/way/27565747</a>, and hence this should be addressed in GH.</p>
</div><div><p class="MsoNormal">This  is how to call it: (if you have multiple encoders you ll need a way to retrieve the encoder's directionBitMask)</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">
@Override</p></div><div><p class="MsoNormal">public GraphHopper importOrLoad(){<br>            super.importOrLoad();<br>            FixOneWayDeadEnds.fixAllOneWayDeadEnds(this.getGraph(),getEncodingManager().getSingle(),3l);</p>
</div><div><p class="MsoNormal">            return this;</p></div><div><p class="MsoNormal">}</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">Cheers</p></div><div>
<p class="MsoNormal">Bruno</p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt"><br><br><br></p></div></div><div><p class="MsoNormal" style="margin-bottom:12.0pt"> </p><div><p class="MsoNormal">On Mon, Jun 16, 2014 at 9:52 PM, graphhopper <<a href="mailto:graphhopper@gmx.de" target="_blank">graphhopper@gmx.de</a>> wrote:</p>
<div><div><p class="MsoNormal" style="margin-bottom:12.0pt">Yeah this is a frequent requested feature but not hard to implement:<br><a href="http://graphhopper-read-only-archive.1087335.n5.nabble.com/Issues-detecting-driving-paths-along-one-way-streets-td1002.html#a1003" target="_blank">http://graphhopper-read-only-archive.1087335.n5.nabble.com/Issues-detecting-driving-paths-along-one-way-streets-td1002.html#a1003</a><br>
<br>But this would mean hiding the real OSM issues ...<br><br>Regards,<br>Peter.</p></div><div><blockquote style="margin-top:5.0pt;margin-bottom:5.0pt"><p class="MsoNormal">Hi Peter, </p><div><p class="MsoNormal"> </p></div>
<div><p class="MsoNormal">We played with the settings (minNetworkSize and highResolution) and it solved a certain class of problems. However, most of the requests still fail. After deeper investigation, we discovered it is due to one of the two points using a way which is a oneway, leading to a subnetwork from which you can’t return. It occurs in many airports or within private areas.</p>
</div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">I think it is a bug in data, but despite of this, I believe Graphhopper should manage that properly in order to make it really useable. (osrm has the same issue). I mean, we have thousands of requests which fail.</p>
</div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">What we did for now: We implemented in the web service an option specifying that the service, in case of a “not found”, move start or destination point (alternatively) within a certain distance, until it finds a route. This actually solve the problem by making the routing service using a routable way. Are you interested by this patch ?</p>
</div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">Of course, it is only a workaround, maybe not suitable for a long term solution. We think that a correct way to fix this would be to clean the graph, at the prepare stage, removing nodes after a one way if they are less than N. What do you think about this ?</p>
</div><div><p class="MsoNormal"> </p></div><div><div><p class="MsoNormal"><span style="font-size:10.5pt;font-family:Menlo">—pascal</span> </p></div><p class="MsoNormal"> </p><div><div><p class="MsoNormal">Le 2 juin 2014 à 10:48, Peter K <<a href="mailto:peathal@yahoo.de" target="_blank">peathal@yahoo.de</a>> a écrit :</p>
</div><p class="MsoNormal"><br><br></p><div><div><p class="MsoNormal" style="margin-bottom:12.0pt">Hey Pascal,<br><br>there are cases with oneway where it wouldn't be logical to return a route. Still there are workarounds like described here:<br>
<a href="https://lists.openstreetmap.org/pipermail/graphhopper/2014-May/000960.html" target="_blank">https://lists.openstreetmap.org/pipermail/graphhopper/2014-May/000960.html</a><br><br>But in your case it is a mapping problem with the incorrect oneway somewhere here:<br>
<a href="http://graphhopper.com/maps/?point=43.697867%2C7.121721&point=43.69784%2C7.121657" target="_blank">http://graphhopper.com/maps/?point=43.697867%2C7.121721&point=43.69784%2C7.121657</a><br><br>which makes the whole district in the south unavailable.<br>
<br>Regards,<br>Peter.<br><br></p></div><blockquote style="margin-top:5.0pt;margin-bottom:5.0pt"><div><p class="MsoNormal"><span style="font-family:Consolas">Hello folks,</span></p></div><div><p class="MsoNormal"> </p></div>
<div><p class="MsoNormal"><span style="font-family:Consolas">I am Pascal and  I currently evaluate Graphhopper as an alternative routing service for my company.</span></p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">
<span style="font-family:Consolas">We are currently facing an issue with an itinerary: from “Nice" to “St Paul de vence”, we just get a “not found” response from GH.</span></p></div><div><p class="MsoNormal"> </p></div>
<div><p class="MsoNormal"><span style="font-family:Consolas">I tested the official online instance and I get the same behaviour:</span></p></div><div><p class="MsoNormal"><a href="http://maps.ad-kds.lan.net:8900/?point=43.703002,7.265224&point=43.694687,7.124634&locale=fr-FR" target="_blank"><span style="font-family:Consolas;color:purple">http://graphhopper.com/maps/?point=nice%20&point=saint%20paul%20de%20vence</span></a></p>
</div><p class="MsoNormal"><span style="font-family:Consolas"> </span></p><div><p class="MsoNormal"><span style="font-family:Consolas">Whereas the opposite works fine:</span></p></div><div><p class="MsoNormal"><span style="font-family:Consolas"><a href="http://graphhopper.com/maps/?point=saint%20paul%20de%20vence&point=nice" target="_blank">http://graphhopper.com/maps/?point=saint%20paul%20de%20vence&point=nice</a></span></p>
</div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"><span style="font-family:Consolas">Is it a bug related to some kind of one way direction ?</span></p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">
<span style="font-family:Consolas">Should I submit a bug, or do I miss something ?</span></p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"><span style="font-family:Consolas">Thanks in advance for your help,</span></p>
</div><div><p class="MsoNormal"><span style="font-family:Consolas"><br>—pascal</span></p></div></blockquote></div></div></div></blockquote></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
</div></div></div></div></div></div></div></blockquote><p class="MsoNormal"> </p></div></div></div></div></div></div></div></blockquote><p class="MsoNormal"> </p></div><p class="MsoNormal"><span lang="EN-GB">_______________________________________________<br>
GraphHopper mailing list<br></span><a href="mailto:GraphHopper@openstreetmap.org"><span lang="EN-GB">GraphHopper@openstreetmap.org</span></a><span lang="EN-GB"><br></span><a href="https://lists.openstreetmap.org/listinfo/graphhopper"><span lang="EN-GB">https://lists.openstreetmap.org/listinfo/graphhopper</span></a><span lang="EN-GB"></span></p>
</div><p class="MsoNormal"><span lang="EN-GB"> </span></p></div></body></html>