I'll admit, I was guilty of being indoors. But it's a single level building and I'm 4 ft from a huge window with clear view of the sky.
For a good lock, you'd need to see four satellites out that window. The satellites are constantly moving (orbit twice a day) and don't go above 55 degrees lattitude.
Though there could be a lot of interference in here, too. Once I stepped outside, the GPS kicked in and found my location. But as soon as I stepped back inside, lost the signal apparently, my location went back to being 3+ miles off. Guess that database has the location of my wifi signal incorrect? Is that right?.
Being off by that far, means that Skyhook doesn't have your WiFi hotspot mapped, and is only using the connected cell id method.
Btw, there is a lot of confusion about A-GPS. It was caused by Jobs (who is a salesman, not an engineer) misspeaking long ago.
First, what it is NOT. It is NOT cell tower triangulation. It is NOT WiFi triangulation. Those are alternative location methods used when GPS does not work.
For the iPhone, A-GPS simply means that when it does a GPS cold start (not having used it for several hours) it will go ask an Assistance Server on the internet for satellite status and orbit information. This allows it to find the necessary satellites almost instantly.
Without Assistance, it has to search all satellites and download the orbit information from the satellites themselves at 50 bps. That's fifty bits per second. The entire ephemeris takes over twelve minutes to receive.
In the old days, carriers were the only ones with Assistance servers and they were only accessible via carrier control signals. That's why Verizon only allowed their own apps for a long time.
These days, GPS chipmakers run their own Assistance Servers located on the internet. (Although I
believe Apple uses their own cache servers, which simply keep an updated copy of the chipmaker's server data. This allows Apple more control.)