They have your info. Your life has been mapped. What does Google’s location reporting reveal about you? If you use Google products on your phone, you may be surprised by the hundreds of thousands of data points gathered each year. Just remember, you have nothing to fear…
Between December 2012 and January 2016, Google has recorded my location 701,564 times. You can download your location history from Google Takeout showing where your Android phone has tracked you. It’s quite creepy.
Most time points contain latitude and longitude, but for some points (e.g. whilst navigating with Maps) they have your speed and heading. By analysing this data, TheyHaveYour.Info can infer places you have lived and worked, calculate your median arrival time at work, see where you go at weekends, where you went on vacations, what you normally do at 3:45pm on a Tuesday, etc.
To avoid processing user location data, the web app works client side. I felt it could make use of the Google Maps / Places API since Google already has your data. You browser may stall as it reads the 189.5 MB LocationHistory.json file file - just wait. When I built this, Web Workers were not the solution because of having to transfer the massive location history object.
Alas, Google now has a pretty decent website for viewing your location data (I did record a lot of traffic from Mountain View after I released this). But maybe consider turning off location history.
STATUS: It works, I’m proud of it, but I’m not likely to update it. Try it out at theyhaveyour.info.
Libraries / Tech
- ClusterFlag - My Google Maps marker clustering library because the other client side libraries will die trying to show 700k data points. Other libraries recalculate the clusters each time you move the map! ClusterFlag does take a while to pre-compute the clusters, but finding which points are within an area is fast.
- Google Maps API
FIXME / TODO
- Fix daylight savings time when making histograms
- More timezone issues. Timezones are horrid!
- Use Web Workers (with workaround for large data transfer)
- Zooming is buggy (especially with touch gestures)
- Intersection of location history for 2 people
- Redo the view of a specific day
- Relative cluster size is calculated by the number of time points. The interval between readings is not constant and should be taken into account.