Commit e09a4fb8 authored by Chris Scott's avatar Chris Scott

Make desiredAccuracy configurable

parent da01e7f3
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
NSInteger stationaryRadius; NSInteger stationaryRadius;
NSInteger distanceFilter; NSInteger distanceFilter;
NSInteger locationTimeout; NSInteger locationTimeout;
NSInteger desiredAccuracy;
} }
- (void)pluginInitialize - (void)pluginInitialize
...@@ -45,6 +46,7 @@ ...@@ -45,6 +46,7 @@
* @param {Number} stationaryRadius * @param {Number} stationaryRadius
* @param {Number} distanceFilter * @param {Number} distanceFilter
* @param {Number} locationTimeout * @param {Number} locationTimeout
* @param {Number} desiredAccuracy
*/ */
- (void) configure:(CDVInvokedUrlCommand*)command - (void) configure:(CDVInvokedUrlCommand*)command
{ {
...@@ -56,12 +58,29 @@ ...@@ -56,12 +58,29 @@
stationaryRadius = [[command.arguments objectAtIndex: 2] intValue]; stationaryRadius = [[command.arguments objectAtIndex: 2] intValue];
distanceFilter = [[command.arguments objectAtIndex: 3] intValue]; distanceFilter = [[command.arguments objectAtIndex: 3] intValue];
locationTimeout = [[command.arguments objectAtIndex: 4] intValue]; locationTimeout = [[command.arguments objectAtIndex: 4] intValue];
desiredAccuracy = [[command.arguments objectAtIndex: 5] intValue];
syncCallbackId = command.callbackId; syncCallbackId = command.callbackId;
// Set a movement threshold for new events. // Set a movement threshold for new events.
locationManager.activityType = CLActivityTypeOther; locationManager.activityType = CLActivityTypeOther;
locationManager.pausesLocationUpdatesAutomatically = YES; locationManager.pausesLocationUpdatesAutomatically = YES;
switch (desiredAccuracy) {
case 1000:
locationManager.desiredAccuracy = kCLLocationAccuracyKilometer; locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
break;
case 100:
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
break;
case 10:
locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
break;
case 0:
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
break;
}
locationManager.distanceFilter = distanceFilter; // meters locationManager.distanceFilter = distanceFilter; // meters
myRegion = nil; myRegion = nil;
...@@ -72,6 +91,7 @@ ...@@ -72,6 +91,7 @@
NSLog(@" - distanceFilter: %ld", (long)distanceFilter); NSLog(@" - distanceFilter: %ld", (long)distanceFilter);
NSLog(@" - stationaryRadius: %ld", (long)stationaryRadius); NSLog(@" - stationaryRadius: %ld", (long)stationaryRadius);
NSLog(@" - locationTimeout: %ld", (long)locationTimeout); NSLog(@" - locationTimeout: %ld", (long)locationTimeout);
NSLog(@" - desiredAccuracy: %ld", (long)desiredAccuracy);
} }
/** /**
* Turn on background geolocation * Turn on background geolocation
......
...@@ -29,13 +29,14 @@ module.exports = { ...@@ -29,13 +29,14 @@ module.exports = {
url = config.url || 'BackgroundGeoLocation_url', url = config.url || 'BackgroundGeoLocation_url',
stationaryRadius = config.stationaryRadius || 50, // meters stationaryRadius = config.stationaryRadius || 50, // meters
distanceFilter = config.distanceFilter || 500, // meters distanceFilter = config.distanceFilter || 500, // meters
locationTimeout = config.locationTimeout || 60; // seconds locationTimeout = config.locationTimeout || 60, // seconds
desiredAccuracy = config.desiredAccuracy || 100; // meters
exec(success || function() {}, exec(success || function() {},
failure || function() {}, failure || function() {},
'BackgroundGeoLocation', 'BackgroundGeoLocation',
'configure', 'configure',
[authToken, url, stationaryRadius, distanceFilter, locationTimeout]); [authToken, url, stationaryRadius, distanceFilter, locationTimeout, desiredAccuracy]);
}, },
start: function(success, failure, config) { start: function(success, failure, config) {
exec(success || function() {}, exec(success || function() {},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment