Как iPhone узнает новые местоположения WiFi с точки зрения использования их для оценки местоположения - PullRequest
12 голосов
/ 26 января 2010

Я знаю, что iPhone может и использует близость WiFi, чтобы получить приблизительное местоположение.Это, очевидно, может произойти только тогда, когда какая-то база данных в небе знает приблизительное местоположение этой точки доступа WiFi.Мой вопрос: как точки доступа попадают в эту базу данных?Он добавляется автоматически, когда iPhone имеет достаточно точное GPS-положение и обнаруживает WiFi, или есть какой-то ручной или программный способ добавления точек доступа?

Ответы [ 2 ]

12 голосов
/ 31 января 2011

Apple использует собственную базу данных начиная с iOS 3.2 (до этого они использовали Skyhook Wireless). Это работает путем отправки MAC-адресов WiFi в Apple с помощью устройств iOS с поддержкой GPS. Таким образом, если устройство имеет исправление GPS, оно автоматически отправляет все MAC-адреса WiFi, которые оно видит, наряду с определенным GPS-местоположением, в Apple. Нет никакой возможности изменить это поведение, кроме главного переключателя «Расположение ядра». Пользователи должны принять эту передачу видимых WiFi MAC-адресов в лицензионном соглашении.

Обнаружение местоположения через WiFi работает противоположным образом, отправляя все просмотренные MAC-адреса WiFi в Apple, и они отвечают местоположением. На самом деле они сильно оптимизируют это, кэшируя как можно больше адресов WiFi на телефоне. Так что это даже работает (в некоторой степени) на iPod touch без подключения к сети.

Слабым местом этого алгоритма являются MiFi и подобные устройства (перемещение точек доступа WiFi). В настоящее время Core Location не очень хорошо отбрасывает явно неправильные местоположения WiFi. Например, на выставках в помещениях без приема GPS будьте готовы к получению неправильных обновлений местоположения из-за множества устройств MiFi.

Чтобы ответить на ваш вопрос о ручном добавлении точек доступа WiFi: нет, сделать это невозможно. Просто используйте iPhone / iPad с поддержкой GPS под управлением iOS 3.2 или выше, и MAC-адрес в конечном итоге попадет в базу данных. По моему опыту, это происходит довольно быстро.

1 голос
/ 26 января 2010

iPhone использует Skyhook Wireless для определения местоположения WiFi. Вы можете отправить свою информацию, используя страницу отправки .

EDIT:

Видимо, это уже не так. Apple, кажется, собирает эти данные с устройств iOS прямо сейчас. Смотрите комментарии.

...