При проезде многоуровневых развязок на их пересечении (т.е. подо мной проходит другая дорога, программа думает, что я двигаюсь по нижней и перерисовывает путь. Сделайте, что программа начинала думать так только при отклонении от пути.. метров на 50-100.
Это может решить подобную проблему. Например в Москве у Волгоградского проспекта есть дублер. У GPS есть погрешность.. и когда я с дублера выезжаю на проспект, программа думает, что я еду по дублеру и соответственно рисует путь. Если будет допустимое значение 50-100 метров, программа выведет меня на проспект... и я буду ехать по нему (хотя по данным программы я еду по дублеру), но т.к. пределах допустимого отклонения, то программа и будут меня дальше вести про проспекту.
Может и не понятно написал :)