Search code examples
c++qtopenstreetmaposrm

OpenStreetMap Requests with Unprecise GPS Position from QtLocation


I am using OSM (OpenStreetMap) plugin for Qt 5.9, to make route calculation in my desktop application.

I have an OSRM local server running that receives the requests from the application.

I noticed a weird flickering in route calculations, and found out that the request hitting the server side does not have the precise GPS coordinates that I passed to the QGeoRoutingManager::calculateRoute request.

enter image description here

The coordinates are only 3-4 decimal places, while the original request had 7 decimal places for the GPS points.

This imprecision causes a drift in position (causing often placement on the other direction of the road), and thus result in a jump in route calculation.

Is there some way to set the precision?


Solution

  • It's a bug in QT, I had to download the source files, and rebuild it.

    The bug is how the routingUrl appends the GPS lat/long in the request URL in the function QGeoRouteParserOsrmV5Private::requestUrl in file qgeorouteparseosrmv5.cpp