Seguimiento de la ubicación en tiempo real mediante la API del proveedor de ubicación fusionada de Google

Imal Kumarage
Imal Kumarage

Follow

Jul 9, 2020 – 3 min read

Foto de henry perks en Unsplash

Localización El seguimiento y la monitorización han visto un aumento en el desarrollo de aplicaciones modernas con varios servicios como Uber que dependen en gran medida de los servicios de localización que requieren consistencia y precisión. Con las empresas y corporaciones que requieren información de localización y monitoreo de sus diversos activos, la entrega de soluciones integrales de localización ha sido una ciencia complicada para muchos desarrolladores.

Identificando la creciente demanda de un servicio conveniente para proporcionar la ubicación, Google introdujo la API de Proveedor de Ubicación Fusionada. Este artículo se centrará en el uso de la API para rastrear la ubicación en tiempo real de un usuario utilizando una aplicación androide y a través del ejemplo demostrar la belleza de la API.

La API se centra en proporcionar información de ubicación utilizando una combinación de GPS de un dispositivo, Wi-Fi y sensores internos. El principal argumento de venta es que decide en qué combinación utilizar estos tres recursos en función de los parámetros de solicitud proporcionados. En este contexto, la gestión de estos recursos se abstrae del desarrollador.

Un caso de uso sencillo para demostrar la capacidad de la API es el seguimiento del movimiento de un individuo que camina hacia un edificio, entra en él y sale. En este escenario, cuando la persona está en el exterior, el servicio GPS funcionará bien. Sin embargo, cuando entra en el edificio, la señal GPS puede caer. El Proveedor de Localización Fusionado maneja el escenario anterior rastreando la ubicación en el exterior a través del GPS y cuando la señal del GPS cae dentro del edificio, utiliza el Wi-Fi. Durante el proceso de cambio de GPS a Wi-Fi, para proporcionar una transición más suave, se utilizan los sensores internos del dispositivo para predecir el movimiento. De esta manera, la gestión de los recursos disponibles para proporcionar servicios de localización fiables de una manera eficiente de la batería es el verdadero poder de la API.

La integración de la API en su aplicación androide es un proceso sencillo. En este ejemplo, vamos a caminar a través de los pasos necesarios requeridos para construir una simple aplicación de seguimiento de la ubicación.

En primer lugar, crear un proyecto androide en Android Studio y dentro de la construcción de la aplicación.gradle de la aplicación, asegúrate de que la siguiente dependencia está presente:

dependencies{
implementation 'com.google.android.gms:play-services:11.8.0'
}

En segundo lugar, dentro del archivo Manifest debes proporcionar el permiso de localización Fine o Coarse añadiendo el siguiente fragmento:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"
/>

Ahora, crea instancias de FusedLocationProviderClient, LocationRequest y LocationCallBack en tu actividad.

private FusedLocationProviderClient fusedLocationClient;private LocationRequest locationRequest;
private LocationCallback locationCallback;@Override
protected void onCreate(Bundle savedInstanceState) {
fusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
}
}

El objeto LocationRequest se utiliza para construir una solicitud de localización de acuerdo con los parámetros de nuestro caso de uso proporcionando detalles como la frecuencia de actualización, el nivel de precisión y la eficiencia de la batería. Crea un método para construir la solicitud de localización en base a los parámetros deseados. A continuación se proporciona un ejemplo:

private void buildLocationRequest() {locationRequest = new LocationRequest(); locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); locationRequest.setInterval(100);locationRequest.setFastestInterval(100); locationRequest.setSmallestDisplacement(1);
}//Build the location callback object and obtain the location results //as demonstrated below:private void buildLocationCallBack() {
locationCallback = new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
for (Location location: locationResult.getLocations()){
String latitude = String.valueOf(location.getLatitude());
String longitude = String.valueOf(location.getLongitude());
}
}
};
}

Una vez inicializados el objeto locationRequest y los objetos locationCallBack, solicita los datos de localización llamando al método requestLocationUpdates del FusedLocationProviderClient. Pase los objetos locationRequest y locationCallback como parámetros.

FusedLocationProviderClient.requestLocationUpdates
(
locationRequest,
locationCallback,
null
);

En base a los parámetros definidos por la solicitud, la API continuará proporcionando información de localización relevante que puede ser utilizada para realizar numerosas funciones como la monitorización de la localización y el seguimiento de la velocidad en tiempo real.

La API del Proveedor de Localización Fusionada proporciona un método conveniente para gestionar todas las tecnologías de localización subyacentes abstrayendo su funcionamiento interno del desarrollador y proporcionando métodos de alto nivel para especificar la calidad y la precisión de los servicios requeridos.

Lo que se explora aquí es sólo una fracción de lo que proporciona la API, y Google ha proporcionado una documentación completa que se puede utilizar para construir aplicaciones diversas y robustas en el futuro. Siga el siguiente enlace para empezar:

https://developers.google.com/location-context/fused-location-provider

Leave a Reply