iPhone开发进阶(10)--- 在程序中使用GPS
2011-05-10 22:32
423 查看
这一回简单地介绍一下GPS的使用方法。使用GPS大致分下面两步。
添加 CoreLocation.framework。
生成 CLLocationManager 测量位置。
测试代码如下:
测量精度有以下几类,精度越高越消耗电力。
因为在模拟器上不能设置经纬度,所以只能在实际设备中测试你的GPS程序。
添加 CoreLocation.framework。
生成 CLLocationManager 测量位置。
测试代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | // LocationViewCtrl.h #import <UIKit/UIKit.h> #import <CoreLocation/CoreLocation.h> @interface LocationViewCtrl : UIViewController <CLLocationManagerDelegate>{ CLLocationManager *man; } @property(nonatomic, retain) CLLocationManager *man; @end LocationViewCtrl.m #import "LocationViewCtrl.h" #import <CoreLocation/CoreLocation.h> @implementation LocationViewCtrl @synthesize man; - (void)viewDidLoad { [super viewDidLoad]; man = [[CLLocationManager alloc] init]; // 如果可以利用本地服务时 if([man locationServicesEnabled]){ // 接收事件的实例 man.delegate = self; // 发生事件的的最小距离间隔(缺省是不指定) man.distanceFilter = kCLDistanceFilterNone; // 精度 (缺省是Best) man.desiredAccuracy = kCLLocationAccuracyBest; // 开始测量 [man startUpdatingLocation]; } } // 如果GPS测量成果以下的函数被调用 - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{ // 取得经纬度 CLLocationCoordinate2D coordinate = newLocation.coordinate; CLLocationDegrees latitude = coordinate.latitude; CLLocationDegrees longitude = coordinate.longitude; // 取得精度 CLLocationAccuracy horizontal = newLocation.horizontalAccuracy; CLLocationAccuracy vertical = newLocation.verticalAccuracy; // 取得高度 CLLocationDistance altitude = newLocation.altitude; // 取得时刻 NSDate *timestamp = [newLocation timestamp]; // 以下面的格式输出 format: <latitude>, <longitude>> +/- <accuracy>m @ <date-time> NSLog([newLocation description]); // 与上次测量地点的间隔距离 if(oldLocation != nil){ CLLocationDistance d = [newLocation getDistanceFrom:oldLocation]; NSLog([NSString stringWithFormat:@"%f", d]); } } // 如果GPS测量失败了,下面的函数被调用 - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{ NSLog([error localizedDescription]); } ... |
kCLLocationAccuracyNearestTenMeters | 10m |
kCLLocationAccuracyHundredMeters | 100m |
kCLLocationAccuracyKilometer | 1km |
kCLLocationAccuracyThreeKilometers | 3km |
相关文章推荐
- iPhone开发进阶(10)--- 在程序中使用GPS
- iPhone开发进阶(10)--- 在程序中使用GPS
- iPhone开发进阶(10)--- 在程序中使用GPS
- iPhone开发进阶(10)--- 在程序中使用GPS
- iPhone开发进阶(10)— 在程序中使用 GPS
- iPhone开发进阶(4) --- 使用Makefile自动编译iPhone程序
- iPhone开发进阶(4) — 使用Makefile自动编译iPhone程序
- iPhone开发进阶(4) --- 使用Makefile自动编译iPhone程序
- iPhone开发进阶(4) --- 使用Makefile自动编译iPhone程序
- iPhone开发技巧之工具篇(3)--- 使用clang静态解析Objective-C程序
- ios 开发 iphone和ipad程序中使用google地图的方法
- iPhone开发入门4 - 创建一个UITable View程序,不使用Interface Builder
- 使用toolchain开发iphone程序之连连看
- iPhone开发进阶(11)--- 多线程的使用与注意事项
- iPhone开发进阶(11)--- 多线程的使用与注意事项
- iPhone开发入门(10)— 设备上运行程序
- vi/vim使用进阶: 在VIM中使用GDB 把VIM打造成Linux下程序开发的IDE利器
- iPhone开发进阶(11)— 多线程的使用与注意事项
- iPhone开发进阶(11)--- 多线程的使用与注意事项
- iPhone开发进阶(11)--- 多线程的使用与注意事项