startLocation method
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;
}
}