Revision: 44541
Updated Code
at April 13, 2011 21:10 by magickaito
Updated Code
// view controller .h file
#import <CoreLocation/CoreLocation.h>
@interface StoreInputViewController : UIViewController <CLLocationManagerDelegate> {
...
CLLocationManager *locationManager;
}
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation;
// view controller .m file
// init the location manager in the viewDidLoad
- (void)viewDidLoad
{
[super viewDidLoad];
// initialize the GPS
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone; // whenever we move
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; // 100 m
}
// check whether GPS is enabled
- (BOOL) isGPSEnabled
{
if (! ([CLLocationManager locationServicesEnabled])
|| ( [CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied))
{
return NO;
}
return YES;
}
// function to start capture GPS, we check settings first to see if GPS is disabled before attempting to get GPS
- (void) getGPS
{
if([self isGPSEnabled])
{
// Location Services is not disabled, get it now
[locationManager startUpdatingLocation];
}
else
{
// Location Services is disabled, do sth here to tell user to enable it
}
}
// receiving the gps and stop it immediately (one time gps only for this example)
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
int degrees = newLocation.coordinate.latitude;
double decimal = fabs(newLocation.coordinate.latitude - degrees);
int minutes = decimal * 60;
double seconds = decimal * 3600 - minutes * 60;
NSString *latValue = [NSString stringWithFormat:@"%d° %d' %1.4f\"",
degrees, minutes, seconds];
degrees = newLocation.coordinate.longitude;
decimal = fabs(newLocation.coordinate.longitude - degrees);
minutes = decimal * 60;
seconds = decimal * 3600 - minutes * 60;
NSString *longValue = [NSString stringWithFormat:@"%d° %d' %1.4f\"",
degrees, minutes, seconds];
NSLog(@"Lat: %@ Long:%@", latValue, longValue);
// stop updating
[manager stopUpdatingLocation];
}
Revision: 44540
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at April 13, 2011 20:48 by magickaito
Initial Code
// view controller .h file
@interface StoreInputViewController : UIViewController <CLLocationManagerDelegate> {
...
CLLocationManager *locationManager;
}
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation;
// view controller .m file
// init the location manager in the viewDidLoad
- (void)viewDidLoad
{
[super viewDidLoad];
// initialize the GPS
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone; // whenever we move
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; // 100 m
}
// check whether GPS is enabled
- (BOOL) isGPSEnabled
{
if (! ([CLLocationManager locationServicesEnabled])
|| ( [CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied))
{
return NO;
}
return YES;
}
// function to start capture GPS, we check settings first to see if GPS is disabled before attempting to get GPS
- (void) getGPS
{
if([self isGPSEnabled])
{
// Location Services is not disabled, get it now
[locationManager startUpdatingLocation];
}
else
{
// Location Services is disabled, do sth here to tell user to enable it
}
}
// receiving the gps and stop it immediately (one time gps only for this example)
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
int degrees = newLocation.coordinate.latitude;
double decimal = fabs(newLocation.coordinate.latitude - degrees);
int minutes = decimal * 60;
double seconds = decimal * 3600 - minutes * 60;
NSString *latValue = [NSString stringWithFormat:@"%d° %d' %1.4f\"",
degrees, minutes, seconds];
degrees = newLocation.coordinate.longitude;
decimal = fabs(newLocation.coordinate.longitude - degrees);
minutes = decimal * 60;
seconds = decimal * 3600 - minutes * 60;
NSString *longValue = [NSString stringWithFormat:@"%d° %d' %1.4f\"",
degrees, minutes, seconds];
NSLog(@"Lat: %@ Long:%@", latValue, longValue);
// stop updating
[manager stopUpdatingLocation];
}
Initial URL
Initial Description
1. Step 1: add CoreLocation framework in Project Settings -> Build Phases -> Link Binary... 2. Step 2: include the CoreLocation.h file 3. implement the following codes 2.
Initial Title
Get GPS From Ipad using CLLocationManager
Initial Tags
Initial Language
Objective C