Real-Time Location Tracking Using Google’s Fused Location Provider API

Imal Kumarage
Imal Kumarage

Follow

Jul 9, 2020 – 3 min de lecture

Photo de henry perks sur Unsplash

Localisation. Le suivi et la surveillance ont connu un essor dans le développement d’applications modernes, divers services tels que Uber s’appuyant fortement sur les services de localisation qui exigent cohérence et précision. Avec les entreprises et les sociétés qui ont besoin d’informations de localisation et de surveillance de leurs différents actifs, fournir des solutions de localisation complètes a été une science délicate pour de nombreux développeurs.

Identifiant la demande croissante pour un service pratique de fourniture de localisation, Google a introduit l’API Fused Location Provider. Cet article se concentrera sur l’utilisation de l’API pour suivre la localisation en temps réel d’un utilisateur à l’aide d’une application android et à travers l’exemple démontrer la beauté de l’API.

L’API se concentre sur la fourniture d’informations de localisation en utilisant une combinaison du GPS, du Wi-Fi et des capteurs internes d’un appareil. Le principal argument de vente est qu’elle décide dans quelle combinaison utiliser ces trois ressources en fonction des paramètres de requête fournis. Dans ce contexte, la gestion de ces ressources est abstraite pour le développeur.

Un cas d’utilisation simple pour démontrer la capacité de l’API est le suivi du mouvement d’un individu qui marche vers un bâtiment, y entre et en sort. Dans ce scénario, lorsque la personne est à l’extérieur, le service GPS fonctionnera bien. Cependant, lorsqu’elle entre dans le bâtiment, le signal GPS peut chuter. Le fournisseur de localisation fusionné gère le scénario ci-dessus en suivant l’emplacement à l’extérieur via le GPS et lorsque le signal GPS chute à l’intérieur du bâtiment, il utilise le Wi-Fi. Au cours du processus de passage du GPS au Wi-Fi, les capteurs internes de l’appareil sont utilisés pour prédire le mouvement afin d’assurer une transition en douceur. De cette manière, la gestion des ressources disponibles pour fournir des services de localisation fiables de manière économe en batterie est la véritable puissance de l’API.

L’intégration de l’API dans votre application android est un processus simple. Dans cet exemple, nous allons parcourir les étapes nécessaires pour construire une application simple de suivi de localisation.

Premièrement, créez un projet android dans Android Studio et dans le build de l’application.gradle, assurez-vous que la dépendance suivante est présente :

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

Deuxièmement, dans le fichier Manifest, vous devez fournir la permission de localisation Fine ou Coarse en ajoutant le snippet ci-dessous :

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

Maintenant, créez des instances de FusedLocationProviderClient, LocationRequest et LocationCallBack dans votre activité.

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

L’objet LocationRequest est utilisé pour construire une demande de localisation conformément aux paramètres de notre cas d’utilisation en fournissant des détails tels que la fréquence de mise à jour, le niveau de précision et l’efficacité de la batterie. Créez une méthode pour construire la demande de localisation en fonction des paramètres que vous souhaitez. Un exemple est fourni ci-dessous :

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());
}
}
};
}

Une fois que l’objet locationRequest et les objets locationCallBack sont initialisés, demandez des données de localisation en appelant la méthode requestLocationUpdates du FusedLocationProviderClient. Passez les objets locationRequest et locationCallback comme paramètres.

FusedLocationProviderClient.requestLocationUpdates
(
locationRequest,
locationCallback,
null
);

Selon les paramètres définis par la demande, l’API continuera à fournir des informations de localisation pertinentes qui peuvent être utilisées pour exécuter de nombreuses fonctions telles que la surveillance de l’emplacement et le suivi de la vitesse en temps réel.

L’API Fused Location Provider fournit une méthode pratique pour gérer toutes les technologies de localisation sous-jacentes en abstrayant leurs rouages internes du développeur et en fournissant des méthodes de haut niveau pour spécifier la qualité et la précision des services requis.

Ce qui est exploré ici n’est qu’une fraction de ce que l’API fournit, et Google a fourni une documentation complète qui peut être utilisée pour construire des applications diverses et robustes à l’avenir. Suivez le lien ci-dessous pour commencer :

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

.

Leave a Reply