Делается это при помощи трансляции уникального номера базовых станций, которые телефон "видит" в своих окрестностях, в их координаты.
Откуда же у Google сведения о том, где установлены базовые? Я раньше писал, что я не верю, что операторы (даже в США) взяли и поделились с Google этой информацией, и скорее всего Google собрал ее самостоятельно. Возможно - с помощью тех пользователей Google Latitude, чьи телефоны оснащены GPS.
А вот еще одно мнение: http://3.rdrail.net/blog/cell-tower-mapping-how-google-did-it/
Краткий пересказ: автор считает, что Google собирал соответствующую информацию в рамках проекта Google StreetView - ведь все равно они ездят (меееедленнно) по всем улицам на машине, оборудованной камерой. Так почему бы при этом не заниматься сбором информации для Latitude?
Я думаю, что хороших способов много не бывает, и сбор, скорее всего, происходил и так, и так.
UPD: Мое мнение по прочим вопросам из комментариев:
1)Подобная локация по WiFi хотспотам возможна и реально используется
2)Считать местоположение можно не по одной camped cell, а по 6 сотам из neighbour list, пересекая (теоретически посчитанные) их области покрытия. Почти наверняка при этом можно добиться лучшей точности
3)Использовать timing advance не получится, т.к. телефон о нем не знает (если я не ошибаюсь)
← Ctrl ← Alt
Ctrl → Alt →
← Ctrl ← Alt
Ctrl → Alt →