How to Get Current Location (Latitude and Longitude) in Flutter

Tiempo de lectura: 2 minutos

 

To quickly and easily get the current location, follow these steps:
First, make sure you have added the geolocator dependency in the pubspec.yaml file:

geolocator: ^7.0.3

Then, run flutter pub get to install the dependency.

Next, add the necessary permissions in the AndroidManifest.xml file:

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

Then implement the following code, which will request location permissions, get the user’s current position, and display the latitude and longitude coordinates on the screen.

To test the following code, run the application on a physical device or emulator that supports location.

import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State {
String _locationMessage = '';
@override
void initState() {
super.initState();
_getLocation();
}
Future _getLocation() async {
try {
// Requests location permissions
LocationPermission permission = await Geolocator.requestPermission();
if (permission == LocationPermission.denied) {
setState(() {
_locationMessage = 'Permission denied';
});
return;
}
scss
Copy code
  // Gets the current position
  Position position = await Geolocator.getCurrentPosition(
    desiredAccuracy: LocationAccuracy.high,
  );

  setState(() {
    _locationMessage =
        'Lat: ${position.latitude}, Long: ${position.longitude}';
  });
} catch (e) {
  setState(() {
    _locationMessage = 'Error: $e';
  });
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Get Location'),
),
body: Center(
child: Text(_locationMessage),
),
);
}
}

I hope this helps. Have a great day!

Leave a Comment