В настоящее время я работаю с OSRM и использовал некоторые данные GPS для тестирования, которые я сгенерировал с помощью googles Утилита Interactive Polyline Encoder https://developers.google.com/maps/documentation/utilities/polylineutility
Концепция, которую я собираюсь использовать, заключается в том, что автомобиль едет по улице, отправляя каждые20 секунд его местоположение GPS.Я хочу отобразить путь и километры, которые он проехал в конце своего путешествия.
Я настроил клиента в C #, выполняя запрос GET с алгоритмом сопоставления, для связи с API-интерфейсом на открытом бэкенде демосервера http://router.project -osrm.org
Проблема в том, что я не могу использовать алгоритм сопоставления, потому что он берет только две точки GPS вместо полилинии, состоящей из нескольких местоположений GPS.Для меня это не имеет смысла.
Я пробовал это, и это работало не так плохо, но он потерял трек и каким-то образом закончился в точке, которую я не определил, вероятно, из-за довольно большого расстояния между двумя точкамино мне нужно, чтобы он работал более чем на два, хотя: вот его изображение, где оно пошло не так

http://router.project-osrm.org/match/v1/driving/13.682632,47.393753;13.6849281,47.3935649?overview=full&radiuses=49;49
Я также нашел несколько приличныхблоги и веб-сайты, которые говорят мне, что я должен использовать алгоритм сопоставления OSRM в качестве инструмента привязки к дороге.Вот один из них: https://www.jamesrcroft.com/2015/06/snapping-gps-tracks-to-roads/
Я также попробовал метод маршрута, который в соответствии с вики OSRM находит самый быстрый маршрут между координатами в указанном порядке.Это не совсем то, что я хочу.По крайней мере, это может занять ломаную линию местоположений GPS, но она всегда была чрезвычайно неточной и неисправной.
Это запрос GET для маршрута метода, который я использовал:
Рисунок того, как он выглядел до OSRM, это немного неточно, поэтому я хочу, чтобы его привязали к дороге:

string polyline = @"kz~dHclrbBbAfAn@iBb@{Cf@aBXkA_@s@m@i@_A}@c@c@Fu@Tq@ZWXT";
string.Format("http://router.project-osrm.org/route/v1/driving/polyline({0})?overview=full", polyline);
В ответ я получил эту ломаную линию в геометрии атрибута:
mz~dHalrbB`@b@XZFFFHBK@CBI@E\\uA\\mA?[?SH[Ru@Nm@XkAFOg@a@m@g@AA}@_Ac@c@IIPk@Tq@Nc@?A??
Это то, что я получил, когда расшифровал его через Google Polyline Encoder: полный беспорядок .. 
Может кто-нибудь объяснить, что я делаюнеправильно?Заранее спасибо!