<div dir="ltr">Hey Peter,<div><br></div><div>I had it tested with the graph from the germany extract from geofabrik. The ~1000 points are scattered all over germany.</div><div>But don't put too much weight into my numbers, I didn't write them down so they may be off. <br>
<div><br></div><div>Best regards,</div><div>Lars</div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, May 19, 2014 at 11:40 AM, Peter K <span dir="ltr"><<a 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">
<div bgcolor="#FFFFFF" text="#000000">
<div>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).<div class=""><br>
<br>
<div>> by setting "instruction" and "calcPoints" to false, so
maybe it only takes 15 minutes now. <br>
</div>
<br></div>
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?<div class=""><br>
<br>
<br>
> I guess for a better solution one would have to do some major
refactorings. <br>
<br></div>
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><div><div class="h5">
<blockquote 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 href="http://algo2.iti.kit.edu/documents/routeplanning/geisberger_dipl.pdf" target="_blank">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 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><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 href="mailto:GraphHopper@openstreetmap.org" target="_blank">GraphHopper@openstreetmap.org</a><br>
<a href="https://lists.openstreetmap.org/listinfo/graphhopper" target="_blank">https://lists.openstreetmap.org/listinfo/graphhopper</a><br>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset></fieldset>
<br>
<pre>_______________________________________________
GraphHopper mailing list
<a href="mailto:GraphHopper@openstreetmap.org" target="_blank">GraphHopper@openstreetmap.org</a>
<a href="https://lists.openstreetmap.org/listinfo/graphhopper" target="_blank">https://lists.openstreetmap.org/listinfo/graphhopper</a>
</pre>
</blockquote>
<br>
<br>
</div></div><span class="HOEnZb"><font color="#888888"><pre cols="72">--
GraphHopper.com - Fast & Flexible Road Routing</pre>
</font></span></div>
<br>_______________________________________________<br>
GraphHopper mailing list<br>
<a href="mailto:GraphHopper@openstreetmap.org">GraphHopper@openstreetmap.org</a><br>
<a href="https://lists.openstreetmap.org/listinfo/graphhopper" target="_blank">https://lists.openstreetmap.org/listinfo/graphhopper</a><br>
<br></blockquote></div><br></div>