La magia de la geolocalización sin GPS

Cada vez más, escuchamos hablar de la geolocalización, de compartir nuestra ubicación en redes sociales, de saber (y que sepan) siempre dónde estamos, y qué y a quien tenemos cerca. Y cuando te paras a reflexionar sobre las posibilidades e implicaciones de todo esto, a mi por lo menos me entra cierta inquietud al pensar en qué cantidad de información compartimos, a priori de forma consentida, en sitios de acceso público: tweets geolocalizados, la red Foursquare... Así en principio, podríamos pensar que la gente podría usar esa información para perjudicarnos de algún modo, pero si nos ponemos en plan negativo, también es cierto que si alguien quiere fastidiarnos, no necesita de herramientas de éste tipo para hacerlo. Un ejemplo, el caso que leí hace tiempo, de un señor que cree que decir por twitter que estaba de vacaciones, fue el causante de que unos ladrones le robaran en casa. Sí, posíblemente lo tengan más fácil, pero también podrían haber obtenido esa información usando un poco de ingeniería social con los conocidos o vecinos. Además, si bien es cierto que compartimos muchas cosas en el ciberespacio de forma pública, la mayoría, sino todas las redes sociales, nos permiten marcar un nivel de privacidad de nuestra información: permitir sólo a amigos ver lo que hago, no mostrar información de mi perfil de forma pública, etc. Al final, como todo en esta vida, es utilizar las herramientas que se nos brindan de forma responsable y con conocimiento de lo que estamos haciendo con ellas.

Pero bueno, que aunque de geolocalización, este post no era para hablar de las implicaciones negativas o positivas de la tecnología, sino para contaros la forma en la que los teléfonos inteligentes de última generación hacen para geolocalizarnos, incluso cuando no hay disponible señal GPS.

Todo empezó hace mucho, mucho tiempo... Ains, es que tenía ganas de escribir esa frase... Vale, vale! Todo empezó cuando hace unos días, por fin, conseguí hacerme con un Iphone 4, un teléfono inteligente que, aparte de todo el furor de las masas por tenerlo, para mi suponía un logro nunca visto en dispositivos dirigidos a un público no específico para personas ciegas. El iphone, desde su versión 3gs, incorpora un lector de pantallas, que sin software adicional, permite a las personas ciegas o con deficiencias visuales manejar el teléfono de forma autónoma.
Una vez me hice con el juguetito, empecé a trastearlo (cosa que me encanta), y pronto descubrí una característica que me dejó bastante alucinado. ¡El teléfono era capaz de decirme, de forma más o menos precisa, dónde me encontraba, incluso en el sótano de casa! ¿Cómo puede ser esto? -me pregunté, si aquí no llega el GPS ni de broma. Imaginé que la triangulación de las antenas de telefonía móvil (celdas) tendría algo que ver, pero eso no explicaba como un Ipod touch, que no dispone de conexión móvil, también lograba los mismos resultados. Así que me puse a investigar (mi amigo Vicente ya me puso en la pista diciéndome que si quitabas la wifi no había forma de que nos geolocalizara dentro de casa), y leyendo y leyendo descubrí la respuesta, que me sorprendió por la simplicidad y efectividad del sistema.

¿Qué hace el iphone / ipod touch (e imagino que otros smartphones) cuando le pedimos nuestra ubicación y no hay señal GPS?
Si el dispositivo dispone de conectividad wifi y de una conexión a internet, escaneará las redes wifi que tenga a su alcance, y obtendrá sus identificadores únicos (MAC, un código hexadecimal que cada wifi posee y que es independiente al nombre que le pongamos nosotros a esa red). Si el dispositivo posee conectividad móvil, junto a los identificadores de las redes wifi, también obtendrá el identificador de todas las antenas de telefonía que tenga a su alcance. Una vez tenga estos identificadores, se conecta a internet, y le pregunta a una base de datos Skyhook Wireless dónde están geográficamente esos identificadores únicos, tanto de las redes wifi como de las antenas móviles que encontró. En base a esos datos, Skyhook devuelve al móvil la información sobre dónde nos encontramos.

En lenguaje humano, lo que haría y pensaría mi iphone sería más o menos lo siguiente:

  • Yo: ¡Esclavo! ¿Dónde puñetas estoy?
  • Iphone: Veamos, dame un segundo que te lo calculo... A ver... ¿Tengo señal GPS? ... ... ... Que va, no capto ni un satélite. ¡No hay problema!
    ¿Tengo conexión a internet? Hmm. sí, estoy conectado a la red móvil de Orange.
    ¿Tengo la wifi activada? Hmmm sí. Así que voy a ver qué redes tengo a mi alrededor ... ... ...
    ¡Ala! He encontrado 4 redes, que tienen los identificadores 1, 2, 3 y 4 (realmente un identificador de una red wify podría ser algo como: 00:fb:ad:31:d5:9e, pero para este ejemplo pongo los números para que se entienda.
    ¿Tengo a mi alcance antenas de telefonía móvil? ¡Claro que sí! Veo tres antenas a mi alrededor, con los identificadores a1, a2 y a3.
    Como tengo acceso a internet, me voy a conectar a la base de datos de Skyhook, y voy a mandarle estos identificadores.
    Señor Skyhook, está usted ahí?
  • Skyhook: Sí, dígame.
  • Iphone: Verá, quiero saber dónde estoy. Así que apunte, hágame el favor, que le voy a dar unas pistillas. Tengo cuatro wifis a mi alrededor, con los identificadores 1, 2, 3 y 4, y además, veo por aquí tres antenas de telefonía móvil, con los identificadores a1, a2, a3 y a4. Venga listillo, ¡a ver si me lo adivina!
  • Skyhook: Vale. Déjeme ver... Según mi extensísima base de datos, calculo que usted está en la calle Alcalá, más o menos entre los números 3 y 7. ¡Toma, incrédulo!
  • Iphone! ¡Vale, lo reconozco, es usted muy listo. muchas gracias! ¡Que tenga usted un buen día!
    MI amo? ¿Está usted ahí?
  • YO: ¡Lento!
  • Iphone: NO sea usted impaciente, que ya tengo su localización!

Pero, ¿Cómo sabe Skyhook Wireless dónde se encuentra un determinado identificador de una red wifi o de una antena móvil?
Pues según leemos en su página web, lo que hacen es peinar las ciudades con flotas de vehículos, equipados con sistemas para escanear las redes wifi que tengan a su alrededor, e ir asociando sus identificadores únicos a los lugares en los que han sido encontradas. Así, por ejemplo, si tenemos una red wifi en nuestra casa, y el coche de Skyhook pasa por debajo de ella, automáticamente obtendrá el identificador único de nuestra wifi, y lo asociará a la dirección por la que estaba circulando. Obviamente no lo asociará con una precisión de metros, pues nuestra red puede tener un alcance de muchos metros a la redonda, así que imagino que se limitan a marcar que esa red se recibe desde Calle Alcalá nº 3, hasta calle alcalá nº 7.
De este modo, han acabado teniendo una base de datos con millones de identificadores wifi, asociados a direcciones geográficas específicas. Cuando nuestro dispositivo le pregunta por nuestra ubicación, ellos buscan en su base de datos dónde se encuentran esos identificadores, y utilizando una fórmula que mezcla esa información con la de la ubicación de las antenas móviles (si el aparato también se las proporcionó), nos devuelve la ubicación con una precisión que según ellos, suele ser de unos 20 metros de media.

También he visto en la web, que cada cierto tiempo hacen nuevos rastreos en zonas ya rastreadas, para captar nuevas redes y corregir redes desubicadas, lo que les permite tener una base de datos actualizada y útil.

Lo que no tengo yo muy claro es de dónde saca Skyhook la ubicación geográfica exacta de las antenas móviles, quizá se la proporcionen las compañías de telefonía, aunque sospecho que la posición de las antenas no es un sistema que funcione en todos los países (quitando la wifi, mi Iphone no ha sido capaz de geolocalizarme en el interior de la oficina, y tenía cobertura gsm y 3g).

Me surgen otras dudas con este sistema, como por ejemplo: ¿Qué ocurre si cuando el rastreador de Skyhook pasó por mi calle en Madrid, obtuvo el identificador de mi wifi, pero resulta que yo mañana cojo y me llevo el router de vacaciones a Málaga? Imagino que el sistema estará preparado para este tipo de imprevistos, y si se encuentra con que un móvil le dice que está cerca de dos wifis, una dice que está en Madrid y otra en Málaga, echará mano de alguna base de datos en las que se asocie la dirección ip del móvil con la localidad, para corregir cual de las dos redes está mal ubicada, o quizá haga uso de la ubicación de las celdas móviles (si el iphone se las proporcionó en la consulta), y al ver que mi wifi pone que está en Madrid pero según el iphone la antena móvil que hay al lado de mi wifi está en Málaga, corregirá la ubicación de mi wifi, y la reubicará en la nueva dirección... Todo esto no son ma´s que conjeturas, habría que probarlo en la práctica para ver qué ocurre, aunque como no se cuando pasará un coche de esos por mi calle, tampoco tengo muchas posibilidades de ello jejejeje.

Así que más o menos, ya sabéis el secreto de la geolocalización en interiores! 😉

Es más que posible que haya errores en el artículo, y que algo que dé aquí por bueno sobre la geolocalización por wifi y celdas móviles, no sea correcto. De modo que espero vuestros comentarios para ir mejorando el artículo!

Y como decía aquella chirigota de hace tantos años, ¡Y mañana, la be!

Actualización, 28/08/2010

Leyendo más sobre el tema, me he encontrado con dos artículos interesantes, y que creo necesario incluir aquí en pro de la exactitud de este post:

Lo cual nos viene a decir, que a partir de la versión 3.2 del sistema operativo IOS, apple ha empezado a usar sus propias bases de datos de geolocalización wifi, y ha dejado de utilizar las bases de datos de skyhook. Así que en dispositivos nuevos o actualizados de apple, como el Iphone 3g/3gs/4, parece que la conversación que os puse más arriba ha sustituido a uno de sus interlocutores, y ahora los dispositivos hablan directamente con bases de datos de la empresa que les creó. Una pena, a mi modo de ver, me caía bien Skyhook y su novedosa forma de ubicarnos geográficamente con las wifis. Además, siempre he pensado que cada uno es experto en su campo, y que no podemos pretender abarcarlo todo para intentar quedarnos con la tajada más grande del pastel. Pero en fin, posiblemente apple haya visto que ya era hora de dar el paso, y que tenía una base de datos lo suficientemente fiable y completa como para utilizar sus propias fuentes.

4 comentarios

  1. Hola! Viendo como escribes lo que es una pena es que no actualices a diario.
    La explicación clarita como el agua, pero lo mejor de todo es que haces que todo eso sea fácil y divertido.
    Enhorabuena!

  2. Juanjo, gracias por dar tu tiempo al conocimiento de los demás. Esta forma de «juntar palabras» no se le llama tan sólo escribir sino que lo de «comunicar para todos» sería el término que más se acerca, quedándose algo por debajo si lo evalúo por satisfacción y comprensibilidad. Quedo agradecido por este aporte.

  3. supongo que si cuando preguntas donde estás y skyhook lo sabe, y casualmente ese día tu vecino estrena un wifi, ese wifi entrará en la base de datos de skyhook para ampliar la base de datos. (eso es lo que yo haría si fuera de skyhook)

    si sabes donde hay varios ifones cerca y sabes la cantidad de señal que les llega de un repetidor de telefonia, supongo que con esos datos en skyhook también pueden triangular su posición y agregarla a la base de datos para futuras consultas 🙂

  4. genial post, es bastante diferente de lo que yo creía como que funcionaba xd.

    por cierto, como una duda ¿la brújula no meterá también algo de mano en ello?

    O es este sistema el que te notifica de la longitud / latitud en la que te encuentras en este momento :3

    Bueno, eso por ahora ^^

    ¡bye!

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.