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
Publicar un comentario