load static method
Implementation
static Future<MGps?> load({required MGpsConfig config}) async {
// permission
bool serviceEnabled = await Geolocator.isLocationServiceEnabled();
if (!serviceEnabled) {
await Geolocator.openAppSettings();
return null;
}
final denied = [
LocationPermission.denied,
LocationPermission.deniedForever,
LocationPermission.unableToDetermine,
];
LocationPermission permissionGranted = await Geolocator.checkPermission();
if (denied.contains(permissionGranted)) {
permissionGranted = await Geolocator.requestPermission();
if (denied.contains(permissionGranted)) {
return null;
}
}
// settings
LocationSettings settings = LocationSettings(
accuracy: LocationAccuracy.best,
distanceFilter: config.gpsDistanceFilter,
);
if (defaultTargetPlatform == TargetPlatform.android) {
settings = AndroidSettings(
accuracy: LocationAccuracy.best,
intervalDuration: const Duration(milliseconds: 200),
distanceFilter: config.gpsDistanceFilter,
);
} else if (defaultTargetPlatform == TargetPlatform.iOS) {
settings = AppleSettings(
accuracy: LocationAccuracy.bestForNavigation,
distanceFilter: config.gpsDistanceFilter,
);
}
return MGps(
config: config,
engine: MGpsEngine(
settings: settings,
config: config,
),
);
}