I had an issue where Android was locating my phone based on one of my WiFi routers about 40 miles away from where I really am. The solution that I read was to launch Google maps (with GPS location enabled) and allow gmaps to locate you based on the network location, then correct based on GPS. It will not fix the location error with only one fix like this, but when it is done enough, the network location will eventually be corrected.
I can verify that my router is now being located in the proper place. It's hard to say how many times I did this, and how many days I did it, but it took a few weeks, probably opening Google maps two or three times a week.
Sorry that I can't be more definite, but apparently Google maps is the key to getting the network location database fixed.
Some number of months ago, I spent some time sniffing traffic off a stock Eris with the phone deactivated (so it could not use the Mobile network), but with WiFi turned on.
One of the things that I noticed is that during checkins, my Eris was sending to Google (or was it HTC?) my Lat/Lon coordinates and also a list
of every visible WiFi SSID and AP Mac Address near my location. Note this was not reporting about just my home WiFi network that the phone was associated with - it was passing data about my neighbors' (secured) WiFi networks, too.
Now, normally SSIDs are not unique - there's probably a crapload of WiFi networks which are named "linksys" or "netgear". But, the checkin process was
also passing the MAC address of the WiFi routers. The combination of "SSID+MAC address" is a psuedo-unique global identifier.
So - millions of Android phones are wandering around the planet routinely sending Google information which is like this: "I am at this Latitude and Longitude, and I am observing the following SSID+MAC Address WiFi networks at my current location."
The long and the short of it is that Google might know exactly where your home WiFi network is - and your neighbor's as well - either because your phone sent them that information, or a different Android user drove past your house one day, and that data got sent to Google.
How precise is that data? I suppose it depends on the quality of the location provided by the Android phone that supplies it - quite good if they have GPS turned on, but possibly off by miles if "location" is only known from a cell tower association. And since your Android handset (or others that happen to drive by when a "checkin" occurs) keep sending slightly different information, Google also needs some kind of algorithm to update their database somehow based on all the info they accumulate over time, expire old data from their database, et cetera. Most certainly this information is not checked by hand - there is simply too much of it.
So, the location data set that Google uses is not perfect by any means - it is sort of "fuzzy". And I suppose, because MAC addresses are not guaranteed to be globally unique, re-use of a common SSID could cause an aliasing between routers that are half the globe apart.
Bottom line is that if you want an exact location, you should probably have GPS turned on. Even that is not going to work sometimes - especially indoors where (sometimes) GPS reception can be non-existent depending on the building construction, etc.
From time to time I have done "such and such
near me" searches - and ended up with Google search recommendations in Croatia or Thailand. That's going to happen sometimes - Google is not guaranteeing that any result is perfect.
eu1