[GraphHopper] Calculating paths & display routes (Android)

Bruno Marques baamarques at gmail.com
Fri Dec 20 11:11:28 UTC 2013


I'm calculating several paths between a few points of interest, i think i'm
having problems with leaking memory or somthing
With the log, can you see if some problem with the gh? or if its some
problem with my proj

12-20 11:03:24.669: E/dalvikvm-heap(10791): Out of memory on a 7830620-byte
allocation.
12-20 11:03:24.669: I/dalvikvm(10791): "AsyncTask #3" prio=5 tid=15 RUNNABLE
12-20 11:03:24.669: I/dalvikvm(10791):   | group="main" sCount=0 dsCount=0
obj=0x40774ff0 self=0x3ddfd8
12-20 11:03:24.669: I/dalvikvm(10791):   | sysTid=10921 nice=10 sched=3/0
cgrp=default handle=3422784
12-20 11:03:24.669: I/dalvikvm(10791):   | schedstat=( 34916079000
976208000 2523 )
12-20 11:03:24.669: I/dalvikvm(10791):   at
gnu.trove.map.hash.TIntObjectHashMap.rehash(TIntObjectHashMap.java:~157)
12-20 11:03:24.669: I/dalvikvm(10791):   at
gnu.trove.impl.hash.THash.postInsertHook(THash.java:388)
12-20 11:03:24.669: I/dalvikvm(10791):   at
gnu.trove.map.hash.TIntObjectHashMap.doPut(TIntObjectHashMap.java:248)
12-20 11:03:24.669: I/dalvikvm(10791):   at
gnu.trove.map.hash.TIntObjectHashMap.put(TIntObjectHashMap.java:222)
12-20 11:03:24.669: I/dalvikvm(10791):   at
com.graphhopper.routing.DijkstraBidirectionRef.fillEdges(DijkstraBidirectionRef.java:160)
12-20 11:03:24.669: I/dalvikvm(10791):   at
com.graphhopper.routing.DijkstraBidirectionRef.fillEdgesFrom(DijkstraBidirectionRef.java:200)
12-20 11:03:24.669: I/dalvikvm(10791):   at
com.graphhopper.routing.DijkstraBidirectionRef.calcPath(DijkstraBidirectionRef.java:106)
12-20 11:03:24.669: I/dalvikvm(10791):   at
com.graphhopper.GraphHopper.route(GraphHopper.java:615)
12-20 11:03:24.669: I/dalvikvm(10791):   at
com.graphhopper.android.MainActivity$9.doInBackground(MainActivity.java:618)
12-20 11:03:24.669: I/dalvikvm(10791):   at
com.graphhopper.android.MainActivity$9.doInBackground(MainActivity.java:1)
12-20 11:03:24.669: I/dalvikvm(10791):   at
android.os.AsyncTask$2.call(AsyncTask.java:185)
12-20 11:03:24.669: I/dalvikvm(10791):   at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
12-20 11:03:24.669: I/dalvikvm(10791):   at
java.util.concurrent.FutureTask.run(FutureTask.java:138)
12-20 11:03:24.669: I/dalvikvm(10791):   at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
12-20 11:03:24.669: I/dalvikvm(10791):   at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
12-20 11:03:24.669: I/dalvikvm(10791):   at
java.lang.Thread.run(Thread.java:1019)
12-20 11:03:24.669: W/dalvikvm(10791): threadid=15: thread exiting with
uncaught exception (group=0x4001d560)
12-20 11:03:24.679: E/AndroidRuntime(10791): FATAL EXCEPTION: AsyncTask #3
12-20 11:03:24.679: E/AndroidRuntime(10791): java.lang.RuntimeException: An
error occured while executing doInBackground()
12-20 11:03:24.679: E/AndroidRuntime(10791): at
android.os.AsyncTask$3.done(AsyncTask.java:200)
12-20 11:03:24.679: E/AndroidRuntime(10791): at
java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274)
12-20 11:03:24.679: E/AndroidRuntime(10791): at
java.util.concurrent.FutureTask.setException(FutureTask.java:125)
12-20 11:03:24.679: E/AndroidRuntime(10791): at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308)
12-20 11:03:24.679: E/AndroidRuntime(10791): at
java.util.concurrent.FutureTask.run(FutureTask.java:138)
12-20 11:03:24.679: E/AndroidRuntime(10791): at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
12-20 11:03:24.679: E/AndroidRuntime(10791): at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
12-20 11:03:24.679: E/AndroidRuntime(10791): at
java.lang.Thread.run(Thread.java:1019)
12-20 11:03:24.679: E/AndroidRuntime(10791): Caused by:
java.lang.OutOfMemoryError
12-20 11:03:24.679: E/AndroidRuntime(10791): at
gnu.trove.map.hash.TIntObjectHashMap.rehash(TIntObjectHashMap.java:157)
12-20 11:03:24.679: E/AndroidRuntime(10791): at
gnu.trove.impl.hash.THash.postInsertHook(THash.java:388)
12-20 11:03:24.679: E/AndroidRuntime(10791): at
gnu.trove.map.hash.TIntObjectHashMap.doPut(TIntObjectHashMap.java:248)
12-20 11:03:24.679: E/AndroidRuntime(10791): at
gnu.trove.map.hash.TIntObjectHashMap.put(TIntObjectHashMap.java:222)
12-20 11:03:24.679: E/AndroidRuntime(10791): at
com.graphhopper.routing.DijkstraBidirectionRef.fillEdges(DijkstraBidirectionRef.java:160)
12-20 11:03:24.679: E/AndroidRuntime(10791): at
com.graphhopper.routing.DijkstraBidirectionRef.fillEdgesFrom(DijkstraBidirectionRef.java:200)
12-20 11:03:24.679: E/AndroidRuntime(10791): at
com.graphhopper.routing.DijkstraBidirectionRef.calcPath(DijkstraBidirectionRef.java:106)
12-20 11:03:24.679: E/AndroidRuntime(10791): at
com.graphhopper.GraphHopper.route(GraphHopper.java:615)
12-20 11:03:24.679: E/AndroidRuntime(10791): at
com.graphhopper.android.MainActivity$9.doInBackground(MainActivity.java:618)
12-20 11:03:24.679: E/AndroidRuntime(10791): at
com.graphhopper.android.MainActivity$9.doInBackground(MainActivity.java:1)
12-20 11:03:24.679: E/AndroidRuntime(10791): at
android.os.AsyncTask$2.call(AsyncTask.java:185)
12-20 11:03:24.679: E/AndroidRuntime(10791): at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
12-20 11:03:24.679: E/AndroidRuntime(10791): ... 4 more
12-20 11:03:33.827: D/dalvikvm(10791): GC_EXPLICIT freed 26435K, 89% free
3654K/32519K, external 4397K/5491K, paused 147ms



On Tue, Dec 17, 2013 at 10:47 PM, Ignas Kapočius
<kapocius.ignas at gmail.com>wrote:

> What a fool of me - I somehow managed to mistaken folders while copying
> them and there were edges/geometry/etc files on my android device.
>
> Sorry for all this spam and thank you for your help again!
>
>
>
>
>
> ----------------------
>
> Ignas Kapočius
>
>
>
> 2013/12/17 Peter K <peathal at yahoo.de>
>
>>  without a log file or more info of how your code looks like we probably
>> won't be able to help you :)
>>
>> Regards,
>> Peter.
>>
>>  I'll look into that, thank you!
>>
>>  What about extracting routing data for a specific city?
>> I've tried using bbike http://download.bbbike.org/osm/ , extracted this:
>>
>> http://download.bbbike.org/osm/extract/planet_25.1591,54.6528_25.3957,54.752.osm.pbf (Vilnius
>> city, Lithuania) and executed ./graphopper.sh import
>> vilnius-city-latest.osm.pmf
>>
>>  Then I've downloaded Lithuania map from here
>> http://download.mapsforge.org/maps/europe/ , created folder
>> vilnius-city-latest-gh and pasted it into Android file system.
>>
>>  When I run app it displays a map but when I try calculate distance
>> between two points (with your methods) app crashes.
>>
>>  Then i've tested it with australia map and it's routing data and it
>> works. So I'm guessing I have some problems with routing data that I've got
>> from bbbike and I've no idea how else to extract correct routing data.
>>
>>
>>
>>  ----------------------
>>
>>  Ignas Kapočius
>>
>>
>>
>> 2013/12/17 Peter K <peathal at yahoo.de>
>>
>>>  Hi Ignas,
>>>
>>> have a look into the android/ folder. There you see how it work. And you
>>> can set the algorithm in the GHRequest object. If contraction hierarchy is
>>> enabled only bidirectional algorithms will work. The GHResponse contains
>>> all the necessary information like points and instructions.
>>>
>>>  > Should I first make some kind of subgraph (due to efficiency)?
>>>
>>>  There are several techniques to make it faster like CH, but you could
>>> also use more heuristical routing algorithms, sorting the graph, in-memory
>>> instead memory mapped etc
>>>
>>> Regards,
>>> Peter.
>>>
>>>   Hello,
>>>
>>>  I've got Graphhopper going on my Android device.
>>>
>>>  Now my goal is to select two points on the map, apply one of the
>>> algorithms (Dijksta, A*, etc) and display results with an overlay.
>>>
>>>  Due to lack of documentation & being a little bit in a hurry, could
>>> somebody point me where/how to start?
>>>
>>>  I understand the basics - getting point's coordinates, displaying an
>>> overlay with results. The part where I'm confused is how to apply search
>>> algorithms in Graphhopper?
>>>
>>>  Should I first make some kind of subgraph (due to efficiency)?
>>> How can I get all the points (on streets, i.e.) between those two points?
>>> Is there something like getStreet(point1, point2) that gives you back
>>> most likely street between your two points?
>>>
>>>  Pardon my naivety, but I'm new to mapping, routing, etc & my BA
>>> thesis' handing in deadline is coming really fast. ;) any help appreciated!
>>>  ----------------------
>>>
>>>  Ignas Kapočius
>>>
>>>
>>>
>>
>> _______________________________________________
>> GraphHopper mailing list
>> GraphHopper at openstreetmap.org
>> https://lists.openstreetmap.org/listinfo/graphhopper
>>
>>
>
> _______________________________________________
> GraphHopper mailing list
> GraphHopper at openstreetmap.org
> https://lists.openstreetmap.org/listinfo/graphhopper
>
>


-- 
t
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/graphhopper/attachments/20131220/6717172b/attachment.html>


More information about the GraphHopper mailing list