Как работают Google Maps/Latitude и подобные программы на телефонах без GPS

Как легко можно убедиться на практике, Google Maps или Google Latitude позволяют определить местоположение телефона даже в том случае, если он не оснащен GPS.

Делается это при помощи трансляции уникального номера базовых станций, которые телефон "видит" в своих окрестностях, в их координаты.

Откуда же у Google сведения о том, где установлены базовые? Я не верю, что операторы взяли и поделились с Google этой информацией - скорее всего, Google собрал ее самостоятельно. Вероятнее всего - с помощью тех пользователей Google Latitude, чьи телефоны оснащены GPS, или при помощи машин, осуществляющих фотографирование улиц для Street View.

Если иметь хотя бы приблизительные координаты шести ближайших к телефону базовых станций GSM, то можно с очень хорошей точностью аппроксимировать координаты телефона без всякого GPS. А ведь каждая базовая станция GSM транслирует в эфир списки сосдених с ней базовых (чтобы телефон знал, куда переметнуться в случае ухудшения качества связи).

Таким же образом можно использовать для определения местоположения не только ID базовых станций сетей GSM/CDMA, но и MAC-адреса точек доступа WiFi.

Все желающие могут ознакомится с публично доступным описанием API от Google, которым пользуются Maps и Latitude, и которое могут использовать разработчики сторонних приложений.

Обратите внимание, что в запросе можно передавать свои координаты и таким образом можно обновлять/уточнять информацию в их базе. Это, как я думаю, делают телефоны со встроенным GPS.

blog comments powered by Disqus