Une application Flutter démontrant l'utilisation précise de la géolocalisation GPS avec suivi en temps réel.
- Suivi GPS en temps réel avec haute précision
- Support Android et iOS
- Affichage de la position actuelle (latitude, longitude, altitude)
- Informations de précision, vitesse et cap
- Historique des positions
- Notification de service au premier plan (Android)
- Support du tracking en arrière-plan
- Interface utilisateur intuitive
L'application affiche :
- Le statut du tracking GPS
- La position actuelle avec tous les détails
- Un historique des mises à jour de position
- Des boutons de contrôle pour démarrer/arrêter le tracking
- Flutter SDK 3.0 ou supérieur
- Dart SDK 3.0 ou supérieur
- Un appareil physique ou émulateur avec GPS
- Clonez ce dépôt :
git clone https://github.com/votre-username/geolocator_precise.git
cd geolocator_precise- Installez les dépendances :
flutter pub get- Lancez l'application :
flutter runLes permissions nécessaires sont déjà configurées dans android/app/src/main/AndroidManifest.xml :
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>Note : Pour Android 10 (API 29) et supérieur, la permission ACCESS_BACKGROUND_LOCATION doit être demandée séparément si vous souhaitez accéder à la localisation en arrière-plan.
Les permissions nécessaires sont déjà configurées dans ios/Runner/Info.plist :
<key>NSLocationWhenInUseUsageDescription</key>
<string>Cette application a besoin d'accéder à votre position pour afficher votre localisation en temps réel.</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>Cette application a besoin d'accéder à votre position en arrière-plan pour continuer le suivi de votre localisation.</string>Le projet est organisé de la manière suivante :
lib/
├── main.dart # Point d'entrée et interface utilisateur
├── services/
│ └── geolocator_service.dart # Service de géolocalisation
└── utils/
└── logger.dart # Utilitaire de logging
Le service principal qui gère toute la logique de géolocalisation :
requestPermissions(): Demande les permissions de localisationstartTracking(): Démarre le suivi GPS en temps réelgetCurrentPosition(): Obtient la position actuellestopTracking(): Arrête le suivi GPSdispose(): Nettoie les ressources
final geoService = GeolocationService(
onPositionChanged: (Position? position) {
// Appelé à chaque mise à jour de position
print('Nouvelle position: ${position?.latitude}, ${position?.longitude}');
},
onMessage: (String? msg) {
// Appelé pour les messages d'erreur ou d'information
print('Message: $msg');
},
);
// Démarrer le tracking
await geoService.startTracking();
// Arrêter le tracking
geoService.stopTracking();
// Nettoyer les ressources
geoService.dispose();Les paramètres sont optimisés pour une précision maximale :
accuracy:LocationAccuracy.bestdistanceFilter: 0 mètre (mise à jour le plus souvent possible)intervalDuration: 5 secondes- Service au premier plan activé avec notification
Les paramètres sont optimisés pour le suivi continu :
accuracy:LocationAccuracy.bestactivityType:ActivityType.fitnessdistanceFilter: 0 (toutes les mises à jour)- Support du tracking en arrière-plan activé
- geolocator - Pour l'accès au GPS
- logger - Pour le logging élégant
Pour contribuer au projet :
- Forkez le dépôt
- Créez une branche pour votre fonctionnalité (
git checkout -b feature/AmazingFeature) - Committez vos changements (
git commit -m 'Add some AmazingFeature') - Poussez vers la branche (
git push origin feature/AmazingFeature) - Ouvrez une Pull Request
Pour tester l'application, il est recommandé d'utiliser un appareil physique car les émulateurs peuvent avoir des limitations GPS.
Android : Utilisez les commandes de localisation de l'émulateur Android iOS : Utilisez Debug > Location dans le simulateur iOS
Assurez-vous que les fichiers de configuration (AndroidManifest.xml et Info.plist) sont correctement configurés.
- Vérifiez que le GPS est activé sur l'appareil
- Assurez-vous d'être à l'extérieur ou près d'une fenêtre pour une meilleure réception
- Vérifiez les logs pour identifier les erreurs
L'utilisateur a refusé les permissions. Vous devrez les demander à nouveau ou guider l'utilisateur vers les paramètres de l'application.
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.
Créé avec le package geolocator
- L'équipe Flutter
- L'équipe du package geolocator
- La communauté Flutter