How does Google Maps know real-time route diversions/road work details?*
More than knowing, Google Maps infers route diversions and roadwork obstacles primarily on the basis of computing the speed of location-tracking enabled Android smartphones on the route.
Hypothetically, if every Android smartphone owner on a particular route disables location tracking, Google Maps will not be able to report route diversions / roadwork obstacles on that route.
It’s possible to spoof a traffic jam, where there isn’t one in reality, by placing a lot of Android smartphones (with location tracking enabled) on a particular route, as somebody did recently in Germany.
An artist wheeled 99 smartphones around in a wagon to create fake traffic jams on Google Maps https://t.co/lFh8JXcx2v .
— Ketharaman Swaminathan (@s_ketharaman) February 4, 2020
LOL. This sounds like the Spy v. Spy trick I pulled on Uber, although I got a monetary reward with my trick. https://t.co/D86QH8uSV9 .
On high traffic routes, Google Maps gets a lot of data quite fast and is able to make its computations - and display the updates therefrom - in near real time.
That’s not so in low traffic routes. A friend recently drove from one Tier 3 town to another in Madhya Pradesh state in India. Google Maps reported travel time of 2h15min basis road works. My friend completed the trip in 1h45min. By the time he undertook the trip, the roadworks had gotten over but Google Maps didn’t report it.
In an outlier case, when the Ramwadi Underpass near my home in Pune was shut down in one direction, Google Maps took two days to report the no entry. Perhaps the app was misled by the regular quantum of traffic flowing in the opposite direction and took time to realize the drop in traffic to zero in the no-entry direction! Or, without knowing about the road block, many motorists reached the underpass, only to turn back when they discovered that it was shut down, and Google Maps was still processing their data and concluding that the route was functional! Hard to say why what happened happened.
Also, on the latest Palki day, when dozens of roads in Pune are closed to motorists to give right of way to tens of thousands of pilgrims to walk towards Pandharpur, a temple town a couple of hundred kilometers south of Pune, Google Maps went totally haywire. I was on a 30 minute Uber ride on that morning. Google Maps couldn’t make up its mind which road was closed and which road was open. My Uber driver switched off Google Maps navigation and drove by “visual sighting”. While it may now sound very quaint to drive by actually looking at the road and signs ahead of our cars, that was how people used to drive until a few years ago!!!
Funnily enough, a friend once reported that Google Maps is bad at reporting route diversions / road works in its own backyard in the San Franciso Bay Area!
Currently on a near two hour lyft ride from SFO to East Bay. Just avoid the Bay Area today...not just commuting. Should have taken Bart. Bit this is where maps fail us - showed a similar time projected for Bart and for driving. Map data is so bad at projecting SF traffic.
— Bradley Leimer (@leimer) November 15, 2019
Notwithstanding the above exceptions, the average motorist may find Google Maps’ reporting of route diversions / roadwork obstacles to be realtime but it may not be realtime enough for “power” drivers like, say, Uber. A couple of years ago, Uber acquired Nokia Maps for $3B. At the time, the news was that, Nokia Maps was much better at reporting route diversions / roadwork obstacles - as also lane-wise status - in realtime and that Uber intended to eventually replace Google Maps with Nokia Maps in its rideshare app.
Perhaps, in a nod to the realtime reporting limitations in its Google Maps app, Google Inc. acquired an Israeli map company called Waze for $1B a few years ago. Waze uses crowdsourcing and is reportedly much better than Google Maps at reporting route diversions / roadworks in realtime. Waze is quite popular in many parts of the USA but, AFAIK, is virtually unheard of in the rest of the world.
*: This is the original question I answered. I’m repeating it to help me make sense of my answer in case it’s moved to / merged with some other question that I didn’t answer.