[GraphHopper] Fwd: Re: instruction too early

Peter graphhopper at gmx.de
Tue Feb 17 15:21:16 UTC 2015


if you find once the next instruction why would you need to iterate over
all points, why not just take the first of this instruction (getFirstLat
etc) and check the distance? what is your usecase?

Peter


On 17.02.2015 16:15, Laura Barroso wrote:
> you mean something like this?
> DistanceCalc distCalc = Helper.DIST_EARTH;
> 			distCalc.calcDist(instruction.getPoints().getLat(0),
> instruction.getPoints().getLon(0),					 currentLocation.getLatitude(),
> currentLocation.getLongitude())
>
> but still will have iterate over all the points inside the instruction...
> is there any better way????
>
>
>> 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
>>>>>>>
>>>>>>>




More information about the GraphHopper mailing list