GeoClue for Dart: Location Services with Flutter

GeoClue for Dart

GeoClue: The Geolocation Service

Geoclue is a D-Bus service that provides location information. It utilizes many sources to best find user's location:

  • WiFi-based geolocation via Mozilla Location Service (accuracy: in meters)
  • GPS(A) receivers (accuracy: in centimeters)
  • GPS of other devices on the local network, e.g smartphones (accuracy: in centimeters)
  • 3G modems (accuracy: in kilometers, unless modem has GPS)
  • GeoIP (accuracy: city-level)
import 'dart:async';

import 'package:geoclue/geoclue.dart';

Future<void> main() async {
  final location = await GeoClue.getLocation(desktopId: '<desktop-id>');
  print('Current location: $location');

  print('Waiting 10s for location updates...');
  late final StreamSubscription sub;
  sub = GeoClue.getLocationUpdates(desktopId: '<desktop-id>')
      .timeout(const Duration(seconds: 10), onTimeout: (_) => sub.cancel())
      .listen((location) {
    print('... $location');

Contributing to geoclue.dart

We welcome contributions! See the contribution guide for more details.

Use this package as a library

Depend on it

Run this command:

With Dart:

 $ dart pub add geoclue

With Flutter:

 $ flutter pub add geoclue

This will add a line like this to your package's pubspec.yaml (and run an implicit dart pub get):

  geoclue: ^0.1.1

Alternatively, your editor might support dart pub get or flutter pub get. Check the docs for your editor to learn more.

Import it

Now in your Dart code, you can use:

import 'package:geoclue/geoclue.dart';


GeoClue for Dart examples

Simple Where Am I? examples using GeoClue to get the current location and listen to location updates.


A minimal example that uses the simplified GeoClue convenience API.


A more advanced example that uses the GeoClueManager and GeoClueClient classes.

Download details:

Author: canonical

License: MPL-2.0 license

#flutter #dart 

GeoClue for Dart: Location Services with Flutter
1.80 GEEK