
Si has copiado las coordenadas de Google Maps con precisión de 15 decimales y aun así el objeto virtual aparece desplazado unos metros, no te preocupes: es el comportamiento normal de la tecnología GPS civil.
Este post es la continuación de: Crea una app de geolicalizacion con AR.js y A-frame WebAR
¿Por qué mi modelo 3D no aparece en el lugar exacto?
Aquí te explicamos las 4 razones técnicas por las que esto ocurre:
- El Margen de Error del GPS Civil
Aunque tu teléfono diga «Ubicación Exacta», los chips GPS de los smartphones comerciales tienen un margen de error estándar de 5 a 15 metros a cielo abierto.
En Google Maps no lo notas: Porque la app hace un truco llamado «Snapping to Road» (te pega a la calle más cercana visualmente).
En WebAR (AR.js): Vemos la coordenada cruda. Si el GPS te ubica 5 metros a la derecha de donde estás realmente, el modelo 3D aparecerá desplazado esos mismos 5 metros.
- La Brújula es el Verdadero Culpable
Para colocar un objeto en el mundo, el teléfono necesita saber dos cosas: Dónde está (GPS) y Hacia dónde mira (Brújula/Magnetómetro).
La brújula digital es extremadamente sensible a interferencias magnéticas.
El Problema: Si la brújula de tu móvil tiene un error de apenas 5 grados (algo muy común), y el objeto está a 100 metros de distancia, ese pequeño ángulo se convierte en un desplazamiento lateral de varios metros.
Interferencias: Estructuras metálicas, líneas de alta tensión o incluso la funda magnética de tu celular pueden descalibrar el norte.
- La Altitud (El Eje Z ignorado)
Google Maps te da Latitud y Longitud, pero rara vez maneja la Altitud exacta del terreno.
Tu código asume que el objeto está a la misma altura del mar que tu cámara (Altura relativa = 0).
Si el terreno real tiene una pendiente, o si una ciudad o elemento está a una altura diferente a la que el GPS calcula en ese segundo, el objeto puede aparecer enterrado en el piso o flotando muy alto.
- Limitaciones del Navegador Web
A diferencia de una app nativa (como Pokémon GO) que tiene acceso profundo al hardware para filtrar y suavizar la señal GPS, los navegadores web (Chrome/Safari) entregan la ubicación a través de una API (navigator.geolocation) que a veces se actualiza más lento o con menos precisión para ahorrar batería.
¿Cómo mejorar este problema o error?
- Calibración: Antes de empezar, abre Google Maps y haz el movimiento del «8» con el celular para calibrar la brújula.
- Cielo Abierto: Prueba siempre en exteriores lejos de edificios altos (que rebotan la señal GPS, efecto «Urban Canyon»).
- Aceptación: En WebAR, considera un radio de tolerancia. Diseña tu experiencia sabiendo que el usuario podría ver el objeto unos metros desplazado.
Te invito a seguir a la comunidad de Realidad Aumentada Empezando Desde Cero en WhatsApp
Ayúdame a seguir creciendo para hacer más y mejores tutoriales de realidad aumentada en Patreon