Я знаю, что iPhone может и использует WiFi близость, чтобы получить приблизительное местоположение. Это, очевидно, может произойти только тогда, когда какая-то база данных в небе знает приблизительное местоположение этой точки доступа WiFi. Мой вопрос в том, как горячие точки попадают в этот бит? Это автоматически добавляется всякий раз, когда iPhone имеет достаточно точную позицию GPS и обнаруживает WiFi или есть какой-то ручной или программный способ добавления горячих точек?
Как iPhone узнает новые местоположения Wi-Fi с точки зрения их использования для оценки местоположения
Ответ 1
Apple использует свою собственную базу данных с iOS 3.2 (до этого они использовали Skyhook Wireless). Это работает, отправляя WiFi MAC-адреса в Apple с помощью устройств iOS с поддержкой GPS. Поэтому, если устройство имеет исправление GPS, оно автоматически отправляет все MAC-адреса WiFi, которые он видит вместе с местоположением, обнаруженным GPS, в Apple. Нет возможности изменить это поведение, кроме главного переключателя Core Location. Пользователи должны принять эту передачу увиденных MAC-адресов WiFi в EULA.
Распознавание местоположения через WiFi работает наоборот, отправляя все увиденные MAC-адреса WiFi в Apple, и они отвечают на это местоположение. На самом деле они сильно оптимизируют это, кэшируя как можно больше WiFi-адресов на телефоне. Таким образом, это даже работает (в некоторой степени) на iPod touch без каких-либо сетевых подключений.
Слабым местом этого алгоритма являются MiFi и подобные устройства (перемещение точек доступа Wi-Fi). В настоящее время Core Location не очень хорошо отбрасывает явно неправильные местоположения WiFi. Например, на внутренних торговых выставках без приема GPS, будьте готовы получить неправильные обновления местоположения из-за многих устройств MiFi.
Отвечайте на вопрос о том, как вручную добавлять точки доступа Wi-Fi: нет, нет способа сделать это. Просто используйте iPhone с поддержкой GPS, работающий под управлением iOS 3.2 или выше, и MAC-адрес в конечном итоге войдет в базу данных. По моему опыту это происходит довольно быстро.
Ответ 2
iPhone использует Skyhook Wireless для определения местоположения WiFi. Вы можете отправить свою информацию, используя страницу .
EDIT:
По-видимому, это уже не так. Кажется, что Apple теперь собирает эти данные с устройств iOS прямо сейчас. См. Комментарии.