My family recently moved to a new house about 30 miles from our old house. My wife and I have Android phones using Google Now and Google Maps. Every morning our phones dutifully tell us how long it will take to get to work, or to our first appointment of the day. And they even do a little pop-up reminder when it's time to leave to arrive exactly on time.
The only problem is, every morning our phones seem to think we're currently at our old house! So those driving directions and pop-up reminders are all wrong!
Finally I figured out the problem, thanks to this website. Apparently when Google Street View cars drive around the world mapping everything, they also collect the locations, SSID, and router MAC address of every WiFi hotspot they encounter. When Google Maps (or Google Now) wants to find your phone's location, it first checks whether you are connected to a WiFi hotspot. If you are, then it queries Google's servers to find out where that hotspot is located. If this data is found, then your phone uses that as your location, rather than turning on the battery-hungry GPS antenna.
Why does this cause a problem? Because when I moved I brought my router with me to my new house. Our phones connect to the same router, with the same MAC address and the same SSID, and so Google's servers tell our phones that we're at our old house.
Google apparently has no way for people to update the location of their WiFi hotspot. And this probably makes sense, since it would be impossible to verify who owns which hotspots. There are ways to prevent Google from assigning a location to your hotspot in the first place, but in my case it's too late for that. So, as far as I can tell, there are three possible solutions:
Update: The problem fixed itself after about 6 weeks. A Google Street View car must've driven by my house and picked up the WiFi hotspot.