<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">Hey Lars,<br>
<br>
your use case is nice to hear :) as we primarily opened up those
methods from 'private' to 'package protected' to serve the needs
of our GraphHopper matrix Add-on which does exactly that what you
are looking for (but is currently not Open Source). It indeed
reduces 1000*1000 normal route calculations by a factor of 10
(even ~40 faster is possible but also more complex and not yet
done).<br>
<br>
<div>> by setting "instruction" and "calcPoints" to false, so
maybe it only takes 15 minutes now. <br>
</div>
<br>
Nice to hear your numbers: either you have a very fast machine or
a small area :). For what area (in km^2) did you measure this?<br>
<br>
<br>
> I guess for a better solution one would have to do some major
refactorings. <br>
<br>
No major refactoring is necessary, you should only need to put
your class under com.graphhopper.routing (although not recommended
as we can break the API!). In the next version, when we are more
confident of the necessary methods, we'll probably make them
accessible to everyone.<br>
<br>
Regards,<br>
Peter.<br>
<br>
</div>
<blockquote
cite="mid:CA+ve-mZmJoHiqhgRhLQr576FFqEHvziebW06CoP=rWrzR4-wUA@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>Hey Peter,</div>
<div><br>
</div>
<div>I have an application where I have to calculate the road
distance between a</div>
<div>number of points, let's say a thousand. Right now I'm doing
1000*1000 point</div>
<div>to point queries (with CH) to calculate that distance
matrix. This takes about</div>
<div>30 minutes, even though I recently found out that you can
accelerate this</div>
<div>by setting "instruction" and "calcPoints" to false, so
maybe it only takes </div>
<div>15 minutes now. </div>
<div><br>
</div>
<div>Anyways, in <a moz-do-not-send="true"
href="http://algo2.iti.kit.edu/documents/routeplanning/geisberger_dipl.pdf">http://algo2.iti.kit.edu/documents/routeplanning/geisberger_dipl.pdf</a></div>
<div>
section 4.1 is described how you can implement a many to many
routing by doing</div>
<div>1000 forward searches and 1000 backward searches but
omitting the abort criterion.</div>
<div>Most of the code to do that is already there you just have
to get rid of the abort</div>
<div>criterion in "dijkstrabiCH":</div>
<div> return currFrom.weight >= bestPath.getWeight()
&& currTo.weight >= bestPath.getWeight();</div>
<div>and make bestWeightMapFrom and bestWeightMapTo in
DijkstraBidirectionRef accessible. </div>
<div><br>
</div>
<div>Unfortunately, "dijkstrabiCH" is an anonymous class inside
of </div>
<div>PrepareContractionHierarchies.createAlgo(). So for my
preliminary tests I just</div>
<div>ripped lots of code out of PrepareContractionHierarchies
and DijkstraBidirectionRef.</div>
<div>That's obviously not a good long-term solution. I guess for
a better solution one </div>
<div>would have to do some major refactorings. </div>
<div><br>
</div>
<div>So, that's my motivation. Any comments? :)</div>
<div><br>
</div>
<div>Best regards,</div>
<div>Lars </div>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Mon, May 19, 2014 at 8:15 AM, Peter
K <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:peathal@yahoo.de" target="_blank">peathal@yahoo.de</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">Hey Lars,<br>
<br>
the reason is simple: no one (except our own classes) should
use those<br>
methods, so that we can break this API at any time we want.
Which<br>
methods you need and why?<br>
<br>
Regards,<br>
Peter.<br>
<div>
<div class="h5"><br>
> Hey there,<br>
><br>
> is there a reason why there are methods and fields
in<br>
> AbstractBidirAlgo that have default visibility
(package private)?<br>
> Now you can't inherit from AbstractBidirAlgo if the
inheriting class<br>
> resides in different package than
com.graphhopper.routing.<br>
><br>
> Best regards,<br>
> Lars<br>
><br>
<br>
<br>
</div>
</div>
_______________________________________________<br>
GraphHopper mailing list<br>
<a moz-do-not-send="true"
href="mailto:GraphHopper@openstreetmap.org">GraphHopper@openstreetmap.org</a><br>
<a moz-do-not-send="true"
href="https://lists.openstreetmap.org/listinfo/graphhopper"
target="_blank">https://lists.openstreetmap.org/listinfo/graphhopper</a><br>
</blockquote>
</div>
<br>
</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="https://lists.openstreetmap.org/listinfo/graphhopper">https://lists.openstreetmap.org/listinfo/graphhopper</a>
</pre>
</blockquote>
<br>
<br>
<pre class="moz-signature" cols="72">--
GraphHopper.com - Fast & Flexible Road Routing</pre>
</body>
</html>