startLocation method

  1. @override
Future<bool> startLocation()
override

Starts location updates.

Implementation

@override
Future<bool> startLocation() async {
  try {
    await _subscriptions['location']?.cancel();
    _subscriptions['location'] = html.window.navigator.geolocation
        .watchPosition(enableHighAccuracy: true)
        .listen((position) {
      _eventStreamController.add(HardwareEvent(
        module: 'gps',
        type: 'data',
        timestamp: DateTime.now(),
        data: {
          'latitude': position.coords?.latitude ?? 0.0,
          'longitude': position.coords?.longitude ?? 0.0,
          'altitude': position.coords?.altitude ?? 0.0,
          'accuracy': position.coords?.accuracy ?? 0.0,
          'speed': position.coords?.speed ?? 0.0,
        },
      ));
    });
    return true;
  } catch (e) {
    _sendError('gps', e.toString());
    return false;
  }
}