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-адрес в конечном итоге попадет в базу данных. По моему опыту, это происходит довольно быстро.