Location


1. Dependencia

Primero, asegúrate de agregar la dependencia location a tu archivo pubspec.yaml:

YAML
dependencies:
  location: ^8.0.0 # Usa la versión más reciente

Luego, ejecuta flutter pub get en la terminal para instalar el paquete.

2. Permisos

Debes solicitar los permisos necesarios al usuario para acceder a su ubicación. Esto se hace de forma diferente en Android e iOS:

Android

En el archivo AndroidManifest.xml (en android/app/src/main/AndroidManifest.xml), agrega los siguientes permisos:

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

iOS

En el archivo Info.plist (en ios/Runner/Info.plist), agrega las siguientes claves:

XML
<key>NSLocationWhenInUseUsageDescription</key>
<string>Esta aplicación necesita acceder a tu ubicación para mostrarte lugares cercanos.</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>Esta aplicación necesita acceder a tu ubicación en segundo plano para ofrecerte recomendaciones personalizadas.</string>

3. Uso básico

Aquí tienes un ejemplo de cómo obtener la ubicación actual del usuario:

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

Location location = Location();

bool serviceEnabled;
PermissionStatus permissionStatus;
LocationData locationData;

serviceEnabled = await location.serviceEnabled();
if (!serviceEnabled) {
  serviceEnabled = await location.requestService();
  if (!serviceEnabled) {
    return;
  }
}

permissionStatus = await location.hasPermission();
if (permissionStatus == PermissionStatus.denied) {
  permissionStatus = await location.requestPermission();
  if (permissionStatus != PermissionStatus.granted) {
    return;
  }
}

locationData = await location.getLocation();

print("Latitud: ${locationData.latitude}");
print("Longitud: ${locationData.longitude}");

4. Escuchar cambios de ubicación

Puedes escuchar los cambios en la ubicación del usuario de la siguiente manera:

Dart
location.onLocationChanged.listen((LocationData currentLocation) {
  print("Latitud: ${currentLocation.latitude}");
  print("Longitud: ${currentLocation.longitude}");
});

5. Precisión de la ubicación

Puedes configurar la precisión de la ubicación según tus necesidades:

Dart
await location.changeSettings(accuracy: LocationAccuracy.high); // Alta precisión

6. Consideraciones adicionales

  • Batería: Obtener actualizaciones de ubicación en tiempo real puede consumir mucha batería. Considera usar la precisión más baja posible y detener las actualizaciones cuando no sean necesarias.
  • Privacidad: Sé transparente con el usuario sobre cómo utilizas su ubicación y por qué necesitas los permisos.
  • Más información en location

Comentarios

Entradas más populares de este blog

Paquete http en Flutter

Image

Menú lateral Drawer.