More Details on the Insidious iOS Snap-to-Road “Feature”



More iPhone Location-Track Testing


This post is a short followup to last month's “The Scourge (or
Beauty) of “Snap To Road” with iPhone Location-Tracking Apps
”, in which I explained how an attempt by Apple to make the iPhone
location services more relevant for car navigation can end up destroying the accuracy for other uses such as geoencoding or
fitness tracking. When enabled, the user's location is “snapped” to the center of the nearest road; internally Apple calls
it “Map Matching”; I call it “Snap to Road”.




In the screenshot of Google Earth seen above, the red line, recorded with the “Snap to Road” feature disabled, mostly matches up with my green-line actual path (which I drew on the map by hand from
memory), but the cyan line, recorded with “Snap to Road” enabled, is
ridiculously devoid of detail... it makes it appear as if I was walking down the exact center of each
road; you can't see what side of the road I was on, nor even that there are turns at the edges.



Unfortunately, this iOS feature can not simply be enabled or disabled by the user or the app developer — Apple, in its
infinite wisdom, chooses when it goes on and off and does not share any details (or even confirm that it happens!) — so
I wanted to do more testing to understand when it does or doesn't become enabled.



Evgen Bodunov, the developer of the most-excellent
Galileo Offline Maps, kindly made a special version of his app
for me which allowed me to explicitly choose the iOS CoreLocation service
Activity Type”.
I did a bunch of riding around with the phone set to
various situations, and came up with a few more details...




ul#snaplist li { margin-bottom: 30px }



“Snap to Road” is tripped on when you exceed 20kph (12mph).



In the screenshot, notice how the cyan line matches the actual track near the start of the ride, then halfway up the “T” it snaps
to the center of the road. That's when my speed crested 20kph after riding slowly from the starting point.



I'm not sure under what conditions it turns back off; merely slowing down to below that threshold is not sufficient to turn it
back off, as I could continue at a walking pace for several minutes and it would not turn off.



In some tests merely pausing or changing direction turned it off, but in other tests seemingly-similar actions did not turn it
off. This remains a mystery.



iOS seems to require Internet access (or cached map data) for it to work.


I disconnected my phone from the Internet (turned on airplane mode and turned off WiFi) and rebooted
the phone, and I could not get the “Snap to Road” to kick in, even at fairly high speeds.



However, upon exiting airplane mode, “Snap to Road” kicked in the next time I exceeded 20kph.



The “OtherNavigation” activity type is the only CoreLocation activity type that does not
invite “Snap to Road” on its own.



This is a confirmation of what I reported previously, that even at high speeds, “Snap to Road” remain thankfully disabled
with OtherNavigation. The other three
activity types all get “Snap to Road” at 20kph.



(However, there's still the caveat that if any app triggers “Snap to Road”, all apps get “Snap to Road”.)





As expected, I've not heard any reply from Apple on the bug report I submitted.

 •  0 comments  •  flag
Share on Twitter
Published on January 19, 2016 02:59
No comments have been added yet.


Jeffrey E.F. Friedl's Blog

Jeffrey E.F. Friedl
Jeffrey E.F. Friedl isn't a Goodreads Author (yet), but they do have a blog, so here are some recent posts imported from their feed.
Follow Jeffrey E.F. Friedl's blog with rss.