<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>