Laura, why not find the next instruction and only display it if the current location is close to it? No need to do unnecessary find() calls.
> until the max distance between > one of the edges and the current position is right, even is that mean that > the user don't get any instruction at all Why not specify the allowed maximum distance to the route in the find method appropriately? Regards, Peter On 17.02.2015 14:43, Laura Barroso wrote: > oh boy, so that's what's happening...this is not good for me, I'm not > interested in knowing the next instruction until the max distance between > one of the edges and the current position is right, even is that mean that > the user don't get any instruction at all because he don't get close > enough to them. ok, Thanks a lot for the clarification, now everything > gets more sense. > Thinking a good approach maybe override instructionList class in order to > modify this behavior to suit my needs. Second approach: compute everything > twice, one the instructionlist(in the find method) and the second on my > method... > >> Hi Laura, >> >> I took a look at InstructionList.find() and actually found some >> inconsistent behaviour: >> https://github.com/graphhopper/graphhopper/issues/331 >> >> Nevertheless I don't think this is the reason for the problems you >> described. >> >> Maybe to avoid misunderstandings, the find(lat, lon, dist) method is >> supposed to work as following: >> Given lat,lon find the closest point on the route. If lat,lon is not >> more than than dist away from the route, then it yields the upcoming >> instruction (even if this instruction is a lot further away than dist). >> >>> Easy: any point in Havana I have test routes in Miramar, Vedado and >>> Guanabacoa, note those are like areas that are not close to each >>> other(at >>> list Guanabacoa from the rest), the last point that I test was: >>> START: latitud: 23.12529533541739 longitude: -82.41401873360883 >>> END: latitud: 23.124871881707463 longitude: -82.4237889156866 >>> The route that I create was on foot, for android purpose. Thanks! >>> >>> >> To find the reason for your exact problem, it would help a lot if you >> can also give me lat, lon coordinates for which you don't get any >> instruction or the instruction within wrong distance. >> >> Cheers, >> Jan >> >>>> Hi Laura, >>>> >>>> thanks for the clarification. i will take a look into this, but it >>>> would >>>> be helpfull if you can provide me start and end point of the route, as >>>> well as one or two points where there is a wrong instruction or one >>>> missing. >>>> >>>> Jan >>>> >>>>> Hello, thanks for your reply, I was not referring to that issue but it >>>>> is >>>>> quite similar to was happen to me... however I know that graphhopper >>>>> generate all the instructions for the route, I check it out every >>>>> time. >>>>> The problem is that it gives me the wrong instruction at the wrong >>>>> time. >>>>> The sniped code you see is part of the class that overrides >>>>> MyLocationOverlay, on the onLocationChanged method. >>>>> I tell graphhopper to give me the next instruction in this piece of >>>>> code: >>>>> Instruction instruction = il.find(location.getLatitude(), >>>>> location.getLongitude(), 2); >>>>> il is the InstructionList that is created as part of the route, I pass >>>>> it >>>>> to the class and every time that location changes I check if there is >>>>> anything to say to the user. >>>> >>>>> Hi Laura, >>>>> >>>>> >>>>>> Hello everyone: I notices that graphhopper is giving me the >>>>>> instructions too early and sometimes it wont even give me anything, >>>>>> I think I read about an issue pointing that but now is close... >>>>> maybe you refer to this issue >>>>> https://github.com/graphhopper/graphhopper/issues/94 regarding missing >>>>> instructions? >>>>> >>>>> >>>>>> I override MyLocationOverlay class, and this is my code: >>>>>> @Override public void onLocationChanged(Location location) { >>>>>> super.onLocationChanged(location); >>>>>> if (lastLocation == null || location != lastLocation) { >>>>>> lastLocation = location; if (il != null) { Instruction instruction >>>>>> = il.find(location.getLatitude(), location.getLongitude(), 2); if >>>>>> (instruction != null && instruction != >>>>> lastInstruction) { >>>>>> lastInstruction = instruction; String text = >>>>> lastInstruction.getTurnDescription(esTR); >>>>>> Toast.makeText(context, text, >>>>> Toast.LENGTH_LONG).show(); >>>>>> if (tts != null) { tts.speak(text, TextToSpeech.QUEUE_FLUSH, >>>>>> null); } } } } } >>>>> I would take a look into this, but I don't understand yet where >>>>> exactly >>>>> your code hooks into the GraphHopper Code. I do not see any >>>>> LocationOverlay class, but maybe you can point me there with a github >>>>> link. >>>>> >>>>> >>>>>> Note that it suppose to give me the instruction with at list 2 >>>>>> meters of distance, last time I check it gave me the instruction >>>>>> with at list 5 meters of distance in the first edge...the next turn >>>>>> wont dispatch anything at all...what could be happening? My start >>>>>> point now is branch "issue 314" since I haven't being able to >>>>>> download the complete repository(problems with my connection). any >>>>>> help will be appreciated. >>>>> >>>>> Cheers, >>>>> Jan >>>>> _______________________________________________ GraphHopper mailing list [email protected] https://lists.openstreetmap.org/listinfo/graphhopper
