Я знаю, что iPhone может и использует WiFi-близость, чтобы получить приблизительное местоположение. Это, очевидно, может произойти только тогда, когда какая-то база данных в небе знает приблизительное местоположение этой точки доступа WiFi. Мой вопрос в том, как горячие точки попадают в этот бит? Это автоматически добавляется всякий раз, когда iPhone имеет достаточно точную позицию GPS и обнаруживает WiFi или есть какой-то ручной или программный способ добавления горячих точек?Как iPhone узнает новые местоположения Wi-Fi с точки зрения их использования для оценки местоположения
ответ
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-адрес в конечном итоге войдет в базу данных. По моему опыту это происходит довольно быстро.
iPhone использует Skyhook Wireless для определения местоположения WiFi. Вы можете отправить свою информацию, используя их submission page.
EDIT:
Видимо, это уже не так. Кажется, что Apple теперь собирает эти данные с устройств iOS прямо сейчас. См. Комментарии.
Apple больше не использует Skyhook. (http://www.fool.com/investing/general/2010/08/04/apple-drops-skyhook-wireless-technology-from-iphon.aspx) Кто-нибудь знает, как зарегистрироваться в базе данных, которую Apple использует ? –
@ Грег, не совсем. Лучше всего использовать устройство iOS с GPS в этом месте. Затем сеть WiFi будет автоматически добавлена в базу данных Apple. –