GPS uso básico

¿Qué puedes hacer con el GPS en Flutter?

  • Obtener la ubicación actual del dispositivo: Ideal para aplicaciones de mapas, seguimiento de rutas, servicios de entrega, etc.
  • Realizar seguimiento de la ubicación en tiempo real: Perfecto para aplicaciones de ejercicio, rastreo de vehículos o cualquier otra que requiera datos de ubicación actualizados constantemente.
  • Determinar la distancia entre dos puntos: Útil para calcular rutas, encontrar lugares cercanos o realizar geofencing.

Pasos básicos para usar el GPS en Flutter:

  1. Agregar la dependencia: En el archivo pubspec.yaml de tu proyecto, agrega la siguiente línea:

    YAML
    geolocator: ^9.0.0
    

    Luego, ejecuta flutter pub get para instalar el paquete.

  2. Solicitar permisos: Antes de acceder a la ubicación del usuario, debes solicitar los permisos necesarios. Flutter facilita este proceso a través del paquete permission_handler.

    Dart
    import 'package:permission_handler/permission_handler.dart';
    
    Future<bool> _handleLocationPermission() async {
      bool locationPermissionGranted = await Permission.location.isGranted;
      if (!locationPermissionGranted) {
        locationPermissionGranted = await Permission.location.request() == PermissionStatus.granted;
      }
      return locationPermissionGranted;
    }
    
  3. Obtener la ubicación: Una vez que tengas los permisos, puedes usar el paquete geolocator para obtener la ubicación actual:

    Dart
    import 'package:geolocator/geolocator.dart';
    
    Future<Position> _getCurrentPosition() async {
      bool locationServiceEnabled;
      LocationPermission permission;
    
      locationServiceEnabled = await Geolocator.isLocationServiceEnabled();
      if    (!locationServiceEnabled)    {
        return Future.error('Location services are disabled.');
     }
    
     permission = await Geolocator.checkPermission();
     if (permission == LocationPermission.denied) {
       permission = await Geolocator.requestPermission();
       if (permission == LocationPermission.denied)    {
         return Future.error('Location permissions are denied');
       }
     }
    
     if (permission == LocationPermission.deniedForever) {
       return Future.error(
           'Location permissions are permanently denied, we cannot request permissions.');   
     }
    
     // Cuando los permisos están otorgados
     return await Geolocator.getCurrentPosition();
    

}


4. **Utilizar la ubicación:**
 Una vez que tengas la posición, puedes acceder a la latitud y longitud:

 ```dart
 Position position = await _getCurrentPosition();
 double latitude = position.latitude;
 double longitude = position.longitude;

Con estos datos, puedes realizar diversas operaciones, como mostrar la ubicación en un mapa, calcular distancias o realizar geocodificación.

Ejemplo práctico: Mostrar la ubicación en un mapa con Google Maps

Dart
import 'package:google_maps_flutter/google_maps_flutter.dart';

// ... (código anterior)

// Crear un marcador
Marker marker = Marker(
  markerId: MarkerId('currentLocation'),
  position: LatLng(latitude, longitude),
);

// Agregar el marcador al mapa
_controller.addMarker(marker);

Consideraciones adicionales:

  • Precisión: La precisión de la ubicación puede variar según el dispositivo y las condiciones ambientales.
  • Consumo de batería: El uso continuo del GPS puede consumir mucha batería. Considera utilizar la ubicación en segundo plano solo cuando sea necesario.
  • Privacidad: Respeta la privacidad del usuario y solicita los permisos de ubicación de manera clara y concisa.


Comentarios

Entradas más populares de este blog

Paquete http en Flutter

Image

Menú lateral Drawer.