[Originally posted to the Waze Champs forum and cross posted to iOS Experts forum]
For quite some time I have had an issue on my weekly 100 mile each way trip to head office where at the same point on the A46 in two different locations a perfectly stable route spontaneously jumps to a parallel road and then recalculates. This happens every time I drive this route.
This area was the subject of a significant road improvement scheme where the old single carriageway road was upgraded to a new dual carriageway, at some points the road deviates from its original path and takes a new one. Both these locations (here and here) are cases of the start/end of a new path for the road. I should add that the road opened the new route on 1 Dec 2011, though work was ongoing until summer 2012.
For a long time I became more and more convinced that there was something wrong with the tiles this road belongs to and this it somehow had memory of the old road and was trying to follow it regardless of the new roads that had been mapped on Waze (and it appeared on the live map within days of the new road opening )
Finally after looking at the URs and GPS tracks and scratching my head I decided to look elsewhere. I added GPX recorder app to my phone and recoded my path outside of Waze while driving down the road. You can view the GPX track here (on Dropbox).
Looking at the GPX track I was astonished to see that the same deviations in the path were being seen outside of Waze (which is kind of good as it means Waze is not the problem).
I then had a revelation and I now know for sure what the issue is ... in a nutshell, my iPhones GPS tracks are being stickied to the roads on apple maps ... and of course the new road is not yet implemented into apple maps some 14 months after it started using the new route. (It was finally added to Tomtom for iOS a few months ago more or less a year after it opened)
For completeness here are the same screenshots for the second location where this happens.
Lastly, the system knows that something is wrong as it is now giving me Automated Map problem alerts:
A quick search on Google revealed another user (and app) with the same problem:
"Snap To Road" in iOS 6 breaks accurate GPS recording
Here is what I think happens: Unlike it predecessors iOS 6 has direct access to map data. Once iOS detects you are going faster than a certain threshold (in my testing around 20 mph), it will correlate your GPS data with the location of a nearby street running in parallel to your actual track. I presume this was implemented to improve the turn-by-turn navigation experience for car drivers, in case where the received GPS signal is slightly off.
In theory, this might be a good optimization. However, when used in combination with the map data on iOS 6, it makes accurate GPS recordings impossible in areas where street data is less than perfect.
At the bottom of the post, there are a couple updates. The last one hints at a possible solution:
I was contacted by the developer of another GSP related fitness app. He suggest that Strava simply forgets to set CLActivityType on iOS 6 to CLActivityTypeFitness. Without a correct type being set, Apple guesses and assumes an automotive activity beyond a certain speed threshold.
There's a brief reference in Apple API documentation.
It's possible that the app needs to set "CLActivityTypeOtherNavigation" or "CLActivityTypeOther".
I have tested this fault in the current release (v3.6.0) and it is still present, but probably only for users running iOS6+
The Apple maps fiasco may well have driven new users to Waze, but Waze (and any iOS GPS aware app) may be hindered by apple maps where they are significantly out of date in some areas.
If you are looking at URs or MPs in areas where there are new roads bear in mind that this may be a factor until such time as it is fixed. I have not yet found an app capable of recording GPX tracks that does not suffer this so it may not be fixable other than by apple. If you know of one PM me and I will try it.
Waze please, please please fix this ...
[Thanks to Timbones for some of the info used in this post]