Differentiate heading into the course of travel and direction
Currently, geoclue uses the "heading" field to combine both of these concepts even though they are distinct. The device could be pointing at 25 degrees, but moving on a course of 115 degrees. As a result, sometimes the compass is overriding the heading taken from the GPS or from the calculation of the angle of movement between current position and the last known position, which confuses both compass applications and navigation applications, which have different purposes.
Recommendation is to split these two out into new fields (e.g. course and direction) so that application may use the value that suits their task.