diff --git a/phoneClients/ios/GpsTracker/WSViewController.m b/phoneClients/ios/GpsTracker/WSViewController.m index 1264914..34104c5 100644 --- a/phoneClients/ios/GpsTracker/WSViewController.m +++ b/phoneClients/ios/GpsTracker/WSViewController.m @@ -8,6 +8,7 @@ #import "WSViewController.h" #import +#import "AFHTTPRequestOperationManager.h" @interface WSViewController () @property (weak, nonatomic) IBOutlet UILabel *latitudeLabel; @@ -24,6 +25,7 @@ int totalDistanceInMeters; bool currentlyTracking; bool firstTimeGettingPosition; + NSUUID *guid; } - (void)viewDidLoad @@ -37,7 +39,7 @@ { NSLog(@"start tracking "); locationManager = [[CLLocationManager alloc] init]; - locationManager.desiredAccuracy = kCLLocationAccuracyBest; + locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters; locationManager.delegate = self; // locationManager.activityType = CLActivityTypeAutomotiveNavigation; locationManager.distanceFilter = 0; // meters @@ -45,6 +47,8 @@ totalDistanceInMeters = 0; firstTimeGettingPosition = YES; + guid = [NSUUID UUID]; + [locationManager startUpdatingLocation]; } @@ -74,31 +78,41 @@ - (void)increaseTrackingAccuracy { - locationManager.desiredAccuracy = kCLLocationAccuracyBest; + locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters; locationManager.distanceFilter = 0; } -- (void)locationManager:(CLLocationManager *)manager - - - :(NSArray *)locations +- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { CLLocation *location = [locations lastObject]; - if (location.horizontalAccuracy < 100.0) { + if (location.horizontalAccuracy < 100.0 && location.coordinate.latitude != 0 && location.coordinate.longitude != 0) { + if (firstTimeGettingPosition) { + firstTimeGettingPosition = NO; + } else { + CLLocationDistance distance = [location distanceFromLocation:previousLocation]; + totalDistanceInMeters += distance; + } + + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; // mysql format + NSString *timeStamp = [dateFormatter stringFromDate:location.timestamp]; + + NSString *latitude = [NSString stringWithFormat:@"%f", location.coordinate.latitude]; + NSString *longitude = [NSString stringWithFormat:@"%f", location.coordinate.longitude]; + NSString *speed = [NSString stringWithFormat:@"%f", location.speed]; + NSString *accuracy = [NSString stringWithFormat:@"%f", location.horizontalAccuracy]; + NSString *direction = [NSString stringWithFormat:@"%f", location.course]; + NSString *altitude = [NSString stringWithFormat:@"%f", location.altitude]; + NSString *totalDistanceString = [NSString stringWithFormat:@"%d", totalDistanceInMeters]; + + // note that the guid is created in startTracking method above + [self updateWebsiteWithLatitde:latitude longitude:longitude speed:speed date:timeStamp distance:totalDistanceString sessionID:[guid UUIDString] accuracy:accuracy extraInfo:altitude direction:direction]; } NSLog(@"lat/lng: %f/%f accuracy: %f", location.coordinate.latitude, location.coordinate.longitude, location.horizontalAccuracy); - - if (firstTimeGettingPosition) { - firstTimeGettingPosition = NO; - } else { - CLLocationDistance distance = [location distanceFromLocation:previousLocation]; - totalDistanceInMeters += distance; - } - previousLocation = location; } @@ -107,6 +121,30 @@ NSLog(@"locationManager error: %@", [error description]); } +- (void)updateWebsiteWithLatitde:(NSString *)latitude longitude:(NSString *)longitude speed:(NSString *)speed date:(NSString *)date distance:(NSString *)distance sessionID:(NSString *)sessionID accuracy:(NSString *)accuracy extraInfo:(NSString *)extraInfo direction:(NSString *)direction +{ + AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; + + NSDictionary *parameters = @{@"latitude": latitude, + @"longitude": longitude, + @"speed": speed, + @"date": date, + @"locationmethod": @"n/a", + @"distance": distance, + @"phonenumber": @"iosUser", + @"sessionid": sessionID, + @"extrainfo": extraInfo, + @"accuracy": accuracy, + @"eventtype": @"ios", + @"direction": direction}; + + [manager POST:@"http://www.websmithing.com/gpstracker2/getgooglemap3.php" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) { + NSLog(@"Response: %@", responseObject); + } failure:^(AFHTTPRequestOperation *operation, NSError *error) { + NSLog(@"AFHTTPRequestOperation Error: %@", error); + }]; +} + - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning];