¿Cómo puede Apple proporcionar una location interior usando CoreLocation?

Encontré este Sample Code en el sitio para desarrolladores de Apple: https://developer.apple.com/library/ios/samplecode/footprint/Introduction/Intro.html

La discripción dice:

Use la Ubicación central para tomar una position Latitud / Longitud y proyéctela en un plano plano. Demuestra cómo hacer las conversiones entre un sistema de coorderadas geográficas (latitud / longitud), un sistema de coorderadas de plano PDF (x, y) y MapKit.

Lo he probado y funciona muy bien. Básicamente, proporciona una image de map para un edificio y especifica dos coorderadas manualmente. Luego, usando CoreLocation, está convirtiendo la latitud / longitud en la position (x, y).

Mi pregunta es: ¿cómo es posible tomar la latitud / longitud en interiores? He visto algunos videos de Apple y han dicho que han mejorado enormemente CoreLocation, pero ¿cómo obtienen mi iPhone las informaciones correctas?

TL; DR: funciona. Me pregunto cómo.

Las grandes empresas, especialmente los proveedores de maps como Apple, Google, etc., recostackn información sobre todos los puntos de acceso Wi-Fi (AP). Utilizan la denominada tecnología crowdsourcing para estimar la position del AP mediante la combinación de coorderadas GPS con la potencia de la señal recibida (RSS) de todos los AP visibles.

Una vez que el usuario solicita una corrección en su location, envía al server una list de todas las direcciones de MAC (control de acceso a medios) asociadas con los puntos de acceso inalámbricos disponibles dentro del range para verificarlas con una database de esas direcciones. Luego se utiliza la técnica de trilateración, que se fusiona con los datos posicionales proporcionados por los sensores internos del teléfono inteligente (acelerómetro, giroscopio, magnetómetro, barómetro). Pero este enfoque todavía adolece de falta de precisión, que es de 7-20 metros, dependiendo de la cantidad de puntos de acceso visibles y de la calidad de los sensores. Mira más aquí o aquí .

Para tener una precisión de 1 a 5 metros, se requiere que tenga información de corrección adicional. El estado del arte es usar balizas bluetooth. Dadas sus coorderadas, es posible estimar la position del usuario. Hoy en día hay muchas empresas que desarrollan esta tecnología, por ejemplo, Navigine , en el interior , nextome .