El geofencing convierte un lugar en un disparador. Dibujas en un mapa un límite virtual, la geocerca (el término en español para geofence), y el sistema reacciona cuando algo lo cruza. Cuando una furgoneta entra en la calle de un cliente, la app de paquetería marca el pedido como "llegando". Cuando el móvil de un técnico sale de la obra, la hoja de horas detiene el reloj. Cuando un dron se acerca a un espacio aéreo restringido, el controlador de vuelo lo hace retroceder. En los tres casos una geocerca hace el mismo trabajo: convertir una ubicación en un evento.
Esta guía explica qué es el geofencing, cómo funciona la prueba que hay detrás, qué tamaño necesita una geocerca para la precisión de ubicación que obtienes de verdad, qué permiten Android e iOS y cómo ejecutar geofencing en un servidor para toda una flota. Las tablas de precisión y el benchmark point-in-polygon son cálculos y mediciones propios; el método está al final de cada sección.
Qué es el geofencing
El geofencing tiene dos partes: una forma y una regla.
La forma es una región de la superficie terrestre. Las dos formas habituales son el círculo, definido por una coordenada central y un radio en metros, y el polígono, definido por una lista ordenada de puntos de latitud y longitud que trazan un contorno. Un círculo basta para "a menos de 200 metros de esta tienda". El polígono hace falta para "dentro de esta zona de reparto" o "dentro del término municipal", donde el límite es irregular.
La regla dice qué pasa cuando algo cruza la forma. Los dos eventos que importan son entrada (la entidad rastreada pasa de fuera a dentro) y salida (de dentro a fuera). Casi todas las plataformas añaden un tercero, permanencia (dwell), que solo se dispara si la entidad se queda dentro un tiempo determinado. La permanencia es el evento adecuado cuando la entrada se dispararía demasiado, por ejemplo con la gente que pasa por delante de una tienda.
Cómo funciona una geocerca
En cada actualización de la posición, el sistema ejecuta una prueba de contención: ¿esta coordenada está dentro de esta forma?
Para un círculo, la prueba es un cálculo de distancia. Mide la distancia ortodrómica del dispositivo al centro: si es menor que el radio, el dispositivo está dentro. Para un polígono, el método estándar es la prueba point-in-polygon por ray casting: traza una semirrecta imaginaria desde el punto en una dirección y cuenta cuántas veces cruza los lados del polígono. Un número impar significa dentro; uno par, fuera.
La geometría es barata. Lo difícil es todo lo demás:
- Precisión. Una lectura de posición es una estimación. Un móvil quieto informa de posiciones que oscilan, y cerca de un límite eso provoca entradas y salidas fantasma. La siguiente sección pone números.
- Batería. Consultar el GPS sin parar agota el teléfono. Los sistemas operativos móviles ofrecen APIs de geofencing de bajo consumo que usan Wi-Fi y antenas y despiertan la app solo cuando es probable que se cruce un límite.
- Estado. Un evento de entrada solo tiene sentido si el estado anterior era fuera. El motor tiene que recordar el último estado conocido de cada entidad para cada geocerca.
Qué tamaño debe tener una geocerca: la precisión, calculada
Android expresa la precisión de la ubicación como el radio dentro del cual está la posición real con un 68 % de confianza (Location.getAccuracy()). Los valores típicos los dan las propias plataformas: según GPS.gov, los móviles con GPS suelen tener una precisión de 4,9 m a cielo abierto, y la guía de geofencing de Android dice que la ubicación por Wi-Fi suele ser precisa a 20 a 50 m y que sin Wi-Fi puede empeorar hasta "varios cientos de metros o varios kilómetros".
Modelamos el error de posición como una distribución normal bidimensional con ese radio del 68 % y calculamos con qué frecuencia una sola lectura cae fuera de una geocerca circular cuando el móvil está quieto justo en el centro:
| Fuente de ubicación (precisión al 68 %) | Geocerca de 25 m | 50 m | 100 m | 150 m | 250 m | 500 m |
|---|---|---|---|---|---|---|
| GPS, cielo abierto (5 m) | 0 % | 0 % | 0 % | 0 % | 0 % | 0 % |
| Wi-Fi, buena (20 m) | 16,9 % | 0,08 % | 0 % | 0 % | 0 % | 0 % |
| Wi-Fi, típica (50 m) | 75,2 % | 32,0 % | 1,05 % | 0,004 % | 0 % | 0 % |
| Sin Wi-Fi, antenas (300 m) | 99,2 % | 96,9 % | 88,1 % | 75,2 % | 45,3 % | 4,2 % |
"0 %" significa menos del 0,001 %. La regla que sale de aquí: el radio debe ser al menos el doble de la precisión al 68 %. Así un móvil en el centro queda dentro en el 99 % de las lecturas, y con 2,5 veces en el 99,9 %. Con la precisión Wi-Fi típica son 100 a 125 m, en línea con el radio mínimo de 100 a 150 m que recomienda Android.
El centro es el mejor caso. Un dispositivo parado cerca del borde, como una furgoneta en el patio de un almacén a 10 m dentro de la valla, queda en el lado equivocado mucho más a menudo:
| Fuente de ubicación | 5 m dentro del borde | 10 m | 25 m | 50 m | 100 m |
|---|---|---|---|---|---|
| GPS, cielo abierto (5 m) | 6,6 % | 0,13 % | 0 % | 0 % | 0 % |
| Wi-Fi, buena (20 m) | 35,3 % | 22,5 % | 3,0 % | 0,01 % | 0 % |
| Wi-Fi, típica (50 m) | 44,0 % | 38,1 % | 22,5 % | 6,6 % | 0,13 % |
| Sin Wi-Fi, antenas (300 m) | 49,0 % | 48,0 % | 45,0 % | 40,1 % | 30,7 % |
La solución es la histéresis: antes de cambiar de estado, exige que la posición supere el borde en una distancia de margen. Con un margen igual al valor de precisión, el caso Wi-Fi a 10 m del borde baja del 38,1 % de lecturas en el lado equivocado al 3,5 %, y el caso GPS a cero. Añade un tiempo de permanencia y una lectura suelta ya no genera un evento.
Método. Desviación típica por eje = precisión / 1,5096, el radio del 68 % de una distribución normal bidimensional. Proporción fuera de un círculo de radio R para un dispositivo en su centro = exp(-R² / 2σ²). Proporción en el lado equivocado de un borde recto a una distancia d = Φ(-d/σ), con un margen h: Φ(-(d+h)/σ). Las lecturas se tratan como independientes, algo que los receptores reales no son, porque sus errores cambian despacio. Lee los números como proporción de lecturas, no como eventos por hora. Script: scripts/seo/blog-keyword-research/what-is-a-geofence.mjs, salida: docs/blog-keyword-research/what-is-a-geofence-2026-09-30.json.
Geofencing en Android e iOS: los límites de cada plataforma
En un móvil rara vez ejecutas tú la prueba de contención. Registras las geocercas en el sistema operativo, que las vigila en segundo plano con ubicación de bajo consumo y despierta tu app en cada transición. Eso trae límites que conviene tener en cuenta al diseñar:
| Android (Geofencing API) | iOS (condition monitoring de Core Location) | |
|---|---|---|
| Geocercas por app | 100 por app y por usuario del dispositivo | 20 condiciones de cualquier tipo |
| Forma | Círculo | Círculo |
| Eventos | Entrada, salida, permanencia (con un loitering delay) | Satisfecha, no satisfecha |
| Latencia | Normalmente menos de 2 minutos; 2 a 3 minutos con los límites de ubicación en segundo plano; hasta 6 minutos para un dispositivo que lleva tiempo quieto | No se indica con una cifra |
| Radio mínimo recomendado | 100 a 150 m | No se indica con una cifra |
Fuentes: la guía de geofencing de Android y la documentación de Apple sobre condition monitoring, que dice que Core Location impide que una sola app vigile más de 20 condiciones de cualquier tipo a la vez.
De ahí salen dos consecuencias prácticas. Primero, ambas plataformas vigilan círculos, así que una geocerca poligonal en un móvil es un círculo que la contiene más tu propia prueba del polígono cuando la app despierta. Segundo, los límites impiden que una cadena con 500 tiendas las registre todas. Guarda la lista completa en un servidor, registra las 20 (iOS) o 100 (Android) más cercanas y renueva esa selección cuando el usuario se haya movido lo suficiente, por ejemplo cuando salga de una geocerca amplia de "renovación" alrededor de su posición actual.
Geofencing en el servidor a escala: point in polygon con un prefiltro H3
Las flotas y los sistemas de rastreo de activos suelen ejecutar el geofencing en el servidor: cada vehículo envía posiciones y el backend las compara con muchas zonas. Aquí el coste de la prueba importa, y crece con el número de vértices del polígono.
Lo medimos sobre un límite real: el municipio de Ámsterdam en OpenStreetMap, dos anillos exteriores con 7.677 vértices. Generamos 1.000.000 de puntos aleatorios dentro de su bounding box y probamos cada uno dos veces.
| Método | Tiempo por punto | Total para 1.000.000 de puntos |
|---|---|---|
| Ray casting sobre el polígono completo | 13,3 µs | 13,3 s |
| Prefiltro H3 a resolución 9, ray casting solo cerca del borde | 2,3 µs | 2,3 s |
El prefiltro cubre el polígono con hexágonos H3 de unos 0,1 km². Las 464 celdas que atraviesa el límite se marcan como "comprobar", las 2.520 celdas totalmente interiores como "dentro", y todo lo demás está fuera. Para cada punto calculas su celda H3, una operación de tiempo constante, y solo ejecutas la prueba completa del polígono si la celda es de "comprobar". Pasó con el 9,2 % de los puntos. Las respuestas coincidieron con la prueba completa en los 1.000.000 de puntos, y construir la tabla de consulta llevó 135 ms.
En este polígono el prefiltro fue 5,9 veces más rápido, y la ganancia crece con el número de vértices, porque la mayoría de los puntos nunca llega al bucle de vértices. Úsalo cuando compares miles de vehículos con muchas zonas cada pocos segundos.
Método. @turf/boolean-point-in-polygon para el ray casting, h3-js 3.7.2, Node 23 en un Apple M2 Pro. Celdas de borde obtenidas muestreando cada lado del polígono cada 5 m; celdas interiores con el polyfill de H3 menos las celdas de borde. Mismo script que arriba; datos del límite © OpenStreetMap contributors (ODbL), relación 47811, descargados el 30 de septiembre de 2026. Los tiempos dependen de la máquina; lo útil es la proporción.
De dónde salen las coordenadas
Una comprobación de geocerca es tan buena como la coordenada que le das, y esa coordenada rara vez llega como latitud y longitud limpias.
En la práctica partes de una dirección ("Calle de Alcalá 12, Madrid"), del nombre de un lugar ("el almacén central") o de una señal en bruto. Convertirlos en el [lng, lat] que necesita la prueba es el trabajo del geocoding y del geocoding inverso:
- El geocoding convierte una dirección o el nombre de un lugar en coordenadas, así que puedes crear una geocerca alrededor de la ubicación de un cliente o comprobar si el destino de un pedido cae dentro de una zona de reparto.
- El geocoding inverso vuelve a convertir las coordenadas en una dirección, así que un evento de entrada puede decir "ha llegado a Calle de Alcalá 12" en lugar de "ha llegado a 40.4194, -3.6992".
- Los datos de lugares te permiten anclar geocercas a puntos de interés conocidos en vez de a formas dibujadas a mano.
Ejemplos de geofencing
- Reparto y logística. Genera los eventos "en reparto" y "ha llegado"; avisa cuando un vehículo sale de su corredor previsto.
- Servicio técnico y personal de campo. Registro automático de entrada y salida cuando el personal entra o sale de una obra.
- Comercio y marketing. Envía una oferta relevante cuando un cliente que ha dado su consentimiento está cerca de una tienda.
- Seguimiento de flotas y activos. Recibe un aviso en cuanto un equipo sale de una zona autorizada.
- Seguridad y cumplimiento. Avisa cuando un dispositivo entra en una zona de riesgo o en un espacio aéreo restringido.
- Hogar inteligente. Enciende la calefacción cuando el último móvil de la casa emprende el camino de vuelta.
Geofencing marketing y privacidad
El geofencing marketing usa los mismos eventos de entrada y permanencia para mostrar un mensaje o un anuncio: un cupón cuando un cliente entra en un centro comercial, un banner para quienes visitan una feria. Trabaja con datos de ubicación que identifican a una persona, y en la UE el RGPD menciona los "datos de localización" en su definición de dato personal (artículo 4, punto 1). Por eso una campaña de geofencing necesita una base jurídica para tratar esos datos, que para notificaciones y publicidad en apps significa en la práctica un consentimiento que el usuario puede retirar.
Los historiales de ubicación también atraen a las fuerzas del orden. Un geofence warrant pide a quien guarda los datos todos los dispositivos presentes en una zona durante una franja de tiempo. En United States v. Smith (9 de agosto de 2024), el Tribunal de Apelaciones del Quinto Circuito de Estados Unidos declaró que los geofence warrants son órdenes generales modernas e inconstitucionales según la Cuarta Enmienda, aunque en ese caso las pruebas se admitieron igualmente por la excepción de buena fe. En diciembre de 2023 Google anunció que Cronología, su historial de ubicaciones, se guardaría en el dispositivo del usuario. Para tu producto la lección es la de cualquier dato personal: evalúa las geocercas donde ya están los datos, guarda los historiales de posiciones en bruto solo el tiempo necesario y, cuando el caso de uso lo permita, almacena eventos en vez de trayectos.
Geofencing para agentes de IA
Los agentes de IA que gestionan logística, servicio técnico o viajes tienen que responder preguntas como "¿este conductor ya está dentro de la zona del almacén?" o "¿cuáles de estas tiendas están a 15 minutos del cliente?". Para eso el agente necesita dos cosas: datos de ubicación limpios y un límite con el que comparar. Puede obtener una coordenada con una API de geocoding, cargar una geocerca como polígono GeoJSON y ejecutar la comprobación de contención como tool call. Combina el geofencing con una isócrona, un límite basado en el tiempo de viaje en lugar de una forma fija, y el agente puede razonar sobre la accesibilidad, que se parece más a lo que la gente entiende por "cerca".
Cómo hacerlo bien
Una geocerca fiable se reduce a cuatro cosas:
- Dimensiónala según la precisión que tienes. Al menos el doble de la precisión al 68 %, 100 a 150 m con ubicación de nivel Wi-Fi.
- Añade histéresis y permanencia. Un margen más allá del borde y un tiempo mínimo dentro eliminan la mayoría de los eventos fantasma.
- Guarda los límites de forma limpia. GeoJSON es el estándar de facto; simplifica los polígonos complejos antes de enviarlos a un dispositivo.
- Usa coordenadas precisas. Una buena API de geocoding y geocoding inverso importa más que el código geométrico.
MapAtlas ofrece la Geocoding API con geocoding directo e inverso y la Isochrone API para límites por tiempo de viaje, con procesamiento en la UE. Para comprobar coordenadas y direcciones a mano, usa la herramienta de coordenadas, y para dibujar una zona de radio fijo, el mapa de radio.
Lecturas relacionadas
- Qué es un geocódigo: geocoding directo e inverso
- Qué es una isócrona
- Qué es GeoJSON
- Qué es una matriz de distancias
Preguntas frecuentes
¿Qué es el geofencing?
El geofencing es el uso de un límite virtual, una geocerca (en inglés geofence), alrededor de una zona real para lanzar una acción cuando un dispositivo, un vehículo o un agente de software entra en ella o sale. El límite es un círculo (un punto central y un radio) o un polígono trazado alrededor de un edificio, una zona de reparto o un barrio. Cuando una posición rastreada lo cruza, el sistema genera un evento: una notificación, un registro de entrada, un webhook o una actualización de la base de datos. El geofencing es una de las piezas básicas de los servicios basados en ubicación.
¿Cómo funciona el geofencing?
Una fuente de ubicación (GPS, Wi-Fi, antenas de telefonía o IP) informa de una posición. Una prueba de contención decide si esa posición está dentro de cada geocerca: una comprobación de distancia para los círculos y una prueba point-in-polygon para los polígonos. Cuando el resultado pasa de fuera a dentro, el sistema genera un evento de entrada, y de dentro a fuera, un evento de salida. La geometría es barata. El trabajo de ingeniería está en la precisión de la ubicación, el consumo de batería y los falsos disparos cerca del borde.
¿Qué tamaño debe tener una geocerca?
Al menos el doble de la precisión de ubicación que puedes esperar, y más si los falsos disparos salen caros. La guía de geofencing de Android recomienda un radio mínimo de 100 a 150 metros, porque la ubicación por Wi-Fi suele tener una precisión de 20 a 50 metros. Nuestro cálculo coincide: con 50 metros de precisión, un móvil quieto en el centro de una geocerca de 100 metros informa de una posición exterior en torno al 1 % de las lecturas, y en el 0,004 % con 150 metros. Con GPS a cielo abierto, 5 metros de precisión, una geocerca de 25 metros ya es estable.
¿Cuántas geocercas puede vigilar una app en Android e iOS?
Android permite 100 geocercas activas por app y por usuario del dispositivo. En iOS, Core Location impide que una sola app vigile más de 20 condiciones a la vez, regiones geográficas incluidas. Las apps que necesitan más guardan la lista completa en un servidor y registran en el dispositivo solo las geocercas más cercanas, que actualizan a medida que el usuario se desplaza.
¿Qué es el geofencing en marketing?
El geofencing marketing envía un mensaje o muestra un anuncio cuando una persona entra en una zona, como una tienda, una feria o el aparcamiento de un competidor. En la UE los datos de ubicación implicados son datos personales según el RGPD, que menciona los datos de localización en su definición de dato personal, así que este tipo de campaña necesita una base jurídica, en la práctica el consentimiento para notificaciones y publicidad en apps. La misma técnica sin consentimiento es lo que reguladores y tribunales cuestionan.
¿Qué diferencia hay entre una geocerca y un geofence warrant?
Una geocerca en software es un límite que defines para activar un comportamiento de la app, como un aviso de entrega o un registro de entrada. Un geofence warrant es una orden judicial que pide a quien guarda los datos qué dispositivos estaban dentro de una zona durante una franja de tiempo. En United States v. Smith (9 de agosto de 2024), el Tribunal de Apelaciones del Quinto Circuito de Estados Unidos declaró que los geofence warrants son órdenes generales modernas e inconstitucionales según la Cuarta Enmienda. Este artículo trata de la geocerca en sentido técnico.

