GPS y servicios de geolocalización en aplicaciones móviles — qué son y métodos para obtener coordenadas

Autor: IT Sectr Publicado: 2026-03-22 Tiempo de lectura: 8 min

Los servicios de GPS y geolocalización en aplicaciones móviles son API para determinar la ubicación física de un dispositivo mediante satélites, Wi-Fi y redes móviles. Según la Google Android Location Guide (2025), más del 60% de las aplicaciones móviles utilizan datos de ubicación para personalizar el contenido. El Fused Location Provider en Android combina múltiples fuentes para mejorar la precisión y reducir el consumo de energía.

Puntos clave

  • GPS es un sistema global de navegación por satélite que proporciona una precisión de 3 a 5 metros en áreas abiertas.
  • Los servicios de geolocalización en Android e iOS proporcionan API para obtener coordenadas a través de GPS, Wi-Fi y torres de telefonía móvil.
  • FusedLocationProviderClient en Android combina GPS, Wi-Fi y sensores para un equilibrio óptimo entre precisión y consumo de energía.
  • CLLocationManager en iOS gestiona las solicitudes de geolocalización con configuración de precisión y modo en segundo plano.
  • Los permisos de ubicación se dividen en “durante el uso” y “siempre” — el segundo requiere justificación adicional.

Qué son el GPS y los servicios de geolocalización

GPS (Global Positioning System) es un sistema de navegación por satélite compuesto por 31 satélites activos en órbita a una altitud de aproximadamente 20.200 km. En los dispositivos móviles, el chip GPS recibe señales de los satélites y calcula las coordenadas mediante trilateración — medición del tiempo de viaje de la señal desde múltiples satélites. Los servicios de geolocalización en los sistemas operativos móviles añaden datos de puntos de acceso Wi-Fi y torres de telefonía al GPS para un posicionamiento más rápido (A-GPS) y una mejor precisión en interiores. Según GPS.gov (2024), la precisión del GPS civil es de 3 a 5 metros en condiciones de cielo despejado y de hasta 15 metros en áreas urbanas densas.

Sistemas satelitales adicionales

Los dispositivos móviles modernos no solo admiten el sistema GPS estadounidense, sino también otros sistemas globales de navegación por satélite: el GLONASS ruso (24 satélites), el Galileo europeo (28 satélites) y el BeiDou chino. La compatibilidad con múltiples sistemas simultáneamente mejora la precisión y la velocidad del posicionamiento — el dispositivo puede utilizar hasta 40 satélites de diferentes sistemas para calcular su posición. En iOS y Android, la selección del sistema satelital se maneja automáticamente a nivel del chip de hardware, y los desarrolladores no necesitan administrar esto.

Cómo funciona la determinación de ubicación

El proceso de determinar la ubicación en un dispositivo móvil consta de varias etapas: recopilación de datos de fuentes (satélites, Wi-Fi, celdas), filtrado y corrección de errores, cálculo de coordenadas y entrega del resultado a la aplicación. El sistema operativo gestiona este proceso a través de un servicio de geolocalización unificado que optimiza todas las fuentes para ahorrar batería. A continuación se describen las tres principales fuentes de datos de ubicación.

GPS y navegación por satélite

La navegación por satélite proporciona la máxima precisión (3 a 5 metros), pero requiere una vista despejada del cielo. En interiores o en áreas urbanas densas, la señal GPS puede debilitarse o perderse por completo. El tiempo para la primera fijación (TTFF) es de 30 a 60 segundos para un arranque en frío y de 5 a 10 segundos para un arranque en caliente. A-GPS (GPS Asistido) acelera el inicio al descargar datos de efemérides de los satélites a través de internet en lugar de esperar los datos de los satélites.

Posicionamiento por Wi-Fi y torres de telefonía

El posicionamiento Wi-Fi utiliza una base de datos de direcciones MAC de puntos de acceso con coordenadas conocidas. La precisión es de 10 a 50 metros dentro de la cobertura Wi-Fi. Las torres de telefonía proporcionan una precisión de 100 metros a varios kilómetros según la densidad de torres. La combinación de todas las fuentes (Fused Location) permite obtener coordenadas con precisión razonable y un consumo de energía mínimo — especialmente cuando el chip GPS está apagado o las señales satelitales no están disponibles.

Proveedores de ubicación en Android e iOS

En ambas plataformas, los servicios de geolocalización se implementan a través de API del sistema con diferentes grados de abstracción. Android utiliza FusedLocationProviderClient de Google Play Services, iOS utiliza CLLocationManager de Core Location. Ambas API permiten solicitar una posición única o suscribirse a actualizaciones periódicas. A continuación se muestra un ejemplo de obtención de coordenadas en Android usando el Fused Location Provider en Kotlin.

Obtención de coordenadas en Android

kotlin
val fusedClient = LocationServices.getFusedLocationProviderClient(this)

val locationRequest = LocationRequest.Builder(
    Priority.PRIORITY_HIGH_ACCURACY
)
.setIntervalMillis(5000)
.setMinUpdateIntervalMillis(2000)
.build()

val locationCallback = object : LocationCallback() {
    override fun onLocationResult(result: LocationResult) {
        result.lastLocation?.let { location ->
            Log.d("Ubicación", "Lat: ${location.latitude}, Lng: ${location.longitude}")
        }
    }
}

if (checkLocationPermission()) {
    fusedClient.requestLocationUpdates(
        locationRequest, locationCallback,
        Looper.getMainLooper()
    )
}

En el ejemplo, LocationRequest se configura con PRIORITY_HIGH_ACCURACY — esto activa el GPS para la máxima precisión. setIntervalMillis establece el intervalo de actualización deseado (5 segundos), setMinUpdateIntervalMillis establece el intervalo mínimo (2 segundos). El callback onLocationResult se invoca cada vez que el sistema recibe nuevas coordenadas. Es importante verificar el permiso antes de llamar a requestLocationUpdates — de lo contrario, la aplicación fallará con una SecurityException.

Obtención de coordenadas en iOS

swift
import CoreLocation

let locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()

// MARCA: - CLLocationManagerDelegate
func locationManager(
    _ manager: CLLocationManager,
    didUpdateLocations locations: [CLLocation]
) {
    guard let location = locations.last else { return }
    print("Location: \(location.coordinate.latitude), \(location.coordinate.longitude)")
}

En iOS, desiredAccuracy determina la precisión de la solicitud: kCLLocationAccuracyBest utiliza todas las fuentes disponibles (GPS + Wi-Fi + celdas). Después de solicitar el permiso mediante requestWhenInUseAuthorization, el sistema muestra un diálogo al usuario. El delegado didUpdateLocations recibe un array de objetos CLLocation con coordenadas, altitud, velocidad y rumbo. Para detener las actualizaciones, se llama a stopUpdatingLocation para ahorrar batería.

Solicitud de permisos de ubicación

El acceso a la geolocalización requiere el permiso explícito del usuario en ambas plataformas. En Android se utilizan los permisos ACCESS_FINE_LOCATION (GPS) y ACCESS_COARSE_LOCATION (Wi-Fi/celdas). A partir de Android 10, el acceso en segundo plano requiere un permiso separado ACCESS_BACKGROUND_LOCATION. En iOS hay tres niveles disponibles: requestWhenInUseAuthorization (solo cuando la aplicación está activa), requestAlwaysAuthorization (en segundo plano) y marcas de tiempo temporales para posicionamiento preciso. Apple requiere una descripción obligatoria en Info.plist: NSLocationWhenInUseUsageDescription o NSLocationAlwaysAndWhenInUseUsageDescription. Sin estas claves, la solicitud de permiso se ignora.

Optimización del consumo de energía

El uso continuo del GPS agota significativamente la batería — hasta un 30% por hora de funcionamiento continuo a máxima precisión. Para optimizar el consumo de energía, se recomienda usar la geolocalización solo cuando sea necesario y detener las actualizaciones cuando la aplicación pase a segundo plano. En Android, FusedLocationProviderClient cambia automáticamente entre GPS y fuentes de red según la disponibilidad y la prioridad de la solicitud. En iOS, use el servicio de cambio significativo de ubicación (startMonitoringSignificantLocationChanges) para actualizaciones con consumo de energía mínimo — la precisión es menor (hasta 500 metros), pero la batería casi no se gasta. También practique el procesamiento por lotes: recolecte coordenadas en intervalos de 5 a 10 minutos y envíelas al servidor en una sola solicitud mediante WorkManager en Android o BGTaskScheduler en iOS. Reducir la frecuencia de solicitudes de 1 segundo a 30 segundos reduce el consumo de energía de la geolocalización en un 85%.

Casos de uso de la geolocalización

La geolocalización se utiliza en una amplia gama de aplicaciones móviles: desde navegadores hasta servicios de entrega. Los escenarios más comunes incluyen mostrar al usuario en un mapa, publicidad geodirigida, seguimiento de repartidores, geocercas para notificaciones push y seguimiento de actividad física. Cada escenario requiere su propio enfoque de precisión y frecuencia de actualización. A continuación se muestra una tabla con recomendaciones de configuración para diferentes tipos de aplicaciones.

Tipo de aplicaciónPrecisiónIntervaloModo segundo plano
NavegadorHIGH (GPS)1-2 seg
EntregaBALANCED (GPS+Wi-Fi)10-30 seg
ClimaLOW (Wi-Fi/celdas)Una vezNo
Red socialBALANCEDAl abrirNo
FitnessHIGH (GPS)5-10 seg

Al diseñar la funcionalidad de geolocalización, es importante considerar que los usuarios pueden revocar el permiso en cualquier momento a través de la configuración del sistema. La aplicación debe manejar adecuadamente las situaciones en las que la geolocalización no está disponible y mostrar una explicación clara de por qué la funcionalidad está limitada.

Geocercas (Geofencing)

Geofencing es una tecnología para crear límites virtuales en un mapa. Cuando se cruzan estos límites, la aplicación recibe una notificación. En Android, las geocercas se implementan a través de GeofencingClient de Google Play Services, en iOS — a través de CLCircularRegion de Core Location. Al entrar o salir de una zona, el sistema activa la aplicación y envía un evento incluso si la aplicación está cerrada o minimizada. Esto se utiliza para notificaciones push al acercarse a una tienda, recordatorios de tareas basados en ubicación y automatización de dispositivos IoT. El número máximo de geocercas es limitado: 100 en Android, 20 en iOS simultáneamente. El radio mínimo de la zona es de 50 metros en ambas plataformas — de lo contrario, el sistema podría no activarse debido a imprecisiones en la determinación de la ubicación. Al entrar en una zona, el sistema inicia un Intent en Android o llama al delegado locationManager:didEnterRegion en iOS.

Preguntas frecuentes

¿Qué es el GPS en dispositivos móviles?

El GPS en un teléfono inteligente es un receptor integrado de señales del sistema de navegación por satélite que determina coordenadas con una precisión de 3 a 5 metros. Los dispositivos también admiten GLONASS, Galileo y BeiDou para mejorar la precisión y la velocidad de posicionamiento.

¿En qué se diferencia el GPS de los servicios de geolocalización?

El GPS es solo un método satelital para determinar coordenadas. Los servicios de geolocalización combinan GPS, posicionamiento Wi-Fi y datos de torres de telefonía para una determinación de ubicación más rápida y eficiente energéticamente, especialmente en interiores.

¿Cómo solicitar permiso de ubicación en iOS?

Llame a requestWhenInUseAuthorization() o requestAlwaysAuthorization() en una instancia de CLLocationManager. Primero, agregue NSLocationWhenInUseUsageDescription en Info.plist con una explicación clara de por qué se necesita la geolocalización.

¿Cómo reducir el consumo de energía del GPS en una aplicación?

Use FusedLocationProviderClient en Android y el servicio de cambio significativo de ubicación en iOS. Aumente el intervalo entre solicitudes a 10-30 segundos, desactive las actualizaciones cuando la pantalla esté apagada y aplique el envío por lotes de coordenadas al servidor.

¿Se puede obtener la ubicación sin GPS?

Sí, sin GPS se puede determinar la ubicación aproximada usando puntos de acceso Wi-Fi (precisión de 10 a 50 metros) o torres de telefonía (precisión de 100 a 5000 metros). En Android, se utiliza ACCESS_COARSE_LOCATION para esto.

Resumen

  • GPS es un sistema de navegación por satélite con precisión de 3 a 5 metros, complementado por GLONASS, Galileo y BeiDou.
  • Los servicios de geolocalización combinan GPS, Wi-Fi y torres de telefonía para una determinación rápida y precisa de coordenadas.
  • Android utiliza FusedLocationProviderClient con LocationRequest para configurar la precisión y los intervalos de actualización.
  • iOS utiliza CLLocationManager con desiredAccuracy y el delegado didUpdateLocations para obtener coordenadas.
  • Los permisos se dividen en “durante el uso” y “siempre” — el acceso en segundo plano requiere aprobación separada del usuario.
  • El consumo de energía del GPS se puede reducir en un 85% aumentando el intervalo y usando cambios significativos de ubicación.
  • Recomendación — elija la precisión y el intervalo de actualización según el escenario: el navegador requiere HIGH, el clima requiere LOW.

Desarrollaremos una aplicación móvil llave en mano

IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.

Discutir el proyecto

Lea también