A Flutter plugin to easily handle realtime location in Android, iOS, macOS, Web, Windows and Linux. Provides settings for optimizing performance or battery.
Dart
1,157
627 commits
updated Aug 7, 2026
The easiest way to get a device's location in real-time โ on every platform Flutter runs.
One simple API for GPS coordinates, live location streams and background tracking on Android, iOS, macOS, Web, Windows and Linux.
๐ Documentation ย ยทย ๐ Live web demo ย ยทย ๐ฆ pub.dev ย ยทย ๐ฌ Feedback
await location.getLocation() and you're done.onLocationChanged for continuous updates.| Feature | Android | iOS | macOS | Web | Windows | Linux |
|---|---|---|---|---|---|---|
| One-time location | โ | โ | โ | โ | โ | โ |
| Location stream | โ | โ | โ | โ | โ | โ |
| Background updates | โ | โ | โ | โ | โ | โ |
| Permission handling | โ | โ | โ | โ | โ | โ |
Windows uses
Windows.Devices.Geolocation; Linux talks to GeoClue2 over D-Bus. Both require the system location service to be enabled.
Add the package:
dependencies:
location: ^10.0.0
Get a location:
import 'package:location/location.dart';
final location = Location();
// Make sure the service is on and permission is granted.
if (!await location.serviceEnabled() && !await location.requestService()) return;
if (await location.requestPermission() != PermissionStatus.granted) return;
// One-time fixโฆ
final current = await location.getLocation();
print('${current.latitude}, ${current.longitude}');
// โฆor a live stream.
location.onLocationChanged.listen((loc) {
print('Moved to ${loc.latitude}, ${loc.longitude}');
});
That's it. Platform setup (permissions, background mode, sandbox entitlements) and the full API are covered in the package README and the documentation website.
| Package | Description | pub.dev |
|---|---|---|
location | The plugin you use in your app. | |
location_platform_interface | Shared platform interface. | |
location_web | Web implementation. |
Issues and pull requests are very welcome โ this plugin is community-maintained and we're always looking for help. Browse the open issues to get started, or open a new one to report a bug or request a feature.
Released under the MIT License. ยฉ 2017 Guillaume Bernos.
(top 30 of 57)
Dart
36.6%
Kotlin
25.6%
C++
17.0%
CMake
9.0%
Swift
9.0%
Ruby
1.4%
A Flutter plugin to easily handle realtime location in Android, iOS, macOS, Web, Windows and Linux. Provides settings for optimizing performance or battery.
Dart
1,157
627 commits
updated Aug 7, 2026
The easiest way to get a device's location in real-time โ on every platform Flutter runs.
One simple API for GPS coordinates, live location streams and background tracking on Android, iOS, macOS, Web, Windows and Linux.
๐ Documentation ย ยทย ๐ Live web demo ย ยทย ๐ฆ pub.dev ย ยทย ๐ฌ Feedback
await location.getLocation() and you're done.onLocationChanged for continuous updates.| Feature | Android | iOS | macOS | Web | Windows | Linux |
|---|---|---|---|---|---|---|
| One-time location | โ | โ | โ | โ | โ | โ |
| Location stream | โ | โ | โ | โ | โ | โ |
| Background updates | โ | โ | โ | โ | โ | โ |
| Permission handling | โ | โ | โ | โ | โ | โ |
Windows uses
Windows.Devices.Geolocation; Linux talks to GeoClue2 over D-Bus. Both require the system location service to be enabled.
Add the package:
dependencies:
location: ^10.0.0
Get a location:
import 'package:location/location.dart';
final location = Location();
// Make sure the service is on and permission is granted.
if (!await location.serviceEnabled() && !await location.requestService()) return;
if (await location.requestPermission() != PermissionStatus.granted) return;
// One-time fixโฆ
final current = await location.getLocation();
print('${current.latitude}, ${current.longitude}');
// โฆor a live stream.
location.onLocationChanged.listen((loc) {
print('Moved to ${loc.latitude}, ${loc.longitude}');
});
That's it. Platform setup (permissions, background mode, sandbox entitlements) and the full API are covered in the package README and the documentation website.
| Package | Description | pub.dev |
|---|---|---|
location | The plugin you use in your app. | |
location_platform_interface | Shared platform interface. | |
location_web | Web implementation. |
Issues and pull requests are very welcome โ this plugin is community-maintained and we're always looking for help. Browse the open issues to get started, or open a new one to report a bug or request a feature.
Released under the MIT License. ยฉ 2017 Guillaume Bernos.
(top 30 of 57)
Dart
36.6%
Kotlin
25.6%
C++
17.0%
CMake
9.0%
Swift
9.0%
Ruby
1.4%