在iOS开发中自动获取当前的位置(GPS定位)

iOS开发中自动获取当前的位置(GPS定位)

开发环境 xcode5.0


首先我们要引入这个框架CoreLocation.framework

将这个库引进来#import <CoreLocation/CoreLocation.h>

还有他的代理方法 CLLocationManagerDelegate


GPSViewController.h

注意这里的CLLocationManager* locationmanager要设置成全局变量,要不然得不到你想要的结果哦!具体为什么,我现在还不清楚

[objc] view plaincopy
  1. #import <UIKit/UIKit.h>  
  2. #import <CoreLocation/CoreLocation.h>  
  3. @interface GPSViewController : UIViewController<CLLocationManagerDelegate>  
  4.   
  5. @property(nonatomic,retain) CLLocationManager* locationmanager;  
  6. @end  

GPSViewController.m

[objc] view plaincopy
  1. #import "GPSViewController.h"  
  2.   
  3. @interface GPSViewController ()  
  4.   
  5. @end  
  6.   
  7. @implementation GPSViewController  
  8.   
  9. @synthesize locationmanager;  
  10.   
  11. - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil  
  12. {  
  13.     self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];  
  14.     if (self) {  
  15.         // Custom initialization  
  16.     }  
  17.     return self;  
  18. }  
  19.   
  20. - (void)viewDidLoad  
  21. {  
  22.     [super viewDidLoad];  
  23.     // Do any additional setup after loading the view.  
  24.     locationmanager = [[CLLocationManager alloc]init];  
  25.       
  26.     //设置精度  
  27.     /* 
  28.      kCLLocationAccuracyBest 
  29.      kCLLocationAccuracyNearestTenMeters 
  30.      kCLLocationAccuracyHundredMeters 
  31.      kCLLocationAccuracyHundredMeters 
  32.      kCLLocationAccuracyKilometer 
  33.      kCLLocationAccuracyThreeKilometers 
  34.      */  
  35.     //设置定位的精度  
  36.     [locationmanager setDesiredAccuracy:kCLLocationAccuracyBest];  
  37.     //实现协议  
  38.     locationmanager.delegate = self;  
  39.     NSLog(@"开始定位");  
  40.     //开始定位  
  41.     [locationmanager startUpdatingLocation];  
  42.      
  43. }  
  44. <pre code_snippet_id="278028" snippet_file_name="blog_20140406_2_4276648" name="code" class="objc"><pre code_snippet_id="278028" snippet_file_name="blog_20140406_2_4276648" name="code" class="objc">#pragma mark locationManager delegate  
  45.   
  46. - (void)locationManager:(CLLocationManager *)manager  
  47.     didUpdateToLocation:(CLLocation *)newLocation  
  48.            fromLocation:(CLLocation *)oldLocation  
  49. {  
  50.     NSLog(@"hello");  
  51.     //打印出精度和纬度  
  52.     CLLocationCoordinate2D coordinate = newLocation.coordinate;  
  53.     NSLog(@"输出当前的精度和纬度");  
  54.     NSLog(@"精度:%f 纬度:%f",coordinate.latitude,coordinate.longitude);  
  55.     //停止定位  
  56.     [locationmanager stopUpdatingLocation];  
  57.     //计算两个位置的距离  
  58.     float distance = [newLocation distanceFromLocation:oldLocation];  
  59.       
  60.     NSLog(@" 距离 %f",distance);  
  61. }  
  62.   
  63. @end  
  64. </pre><br>  
  65. <br>  
  66. <pre></pre>  
  67. <pre code_snippet_id="278028" snippet_file_name="blog_20140406_2_4276648" name="code" class="objc"><pre code_snippet_id="278028" snippet_file_name="blog_20140406_2_4276648"></pre><pre code_snippet_id="278028" snippet_file_name="blog_20140406_2_4276648" name="code" class="objc"><pre code_snippet_id="278028" snippet_file_name="blog_20140406_2_4276648"></pre>  
  68. <pre></pre>  
  69. <pre></pre>  
  70. <pre></pre>  
  71. <pre></pre>  
  72. <pre></pre>  
  73.   
  74. </pre></pre></pre>  

在iOS开发中自动获取当前的位置(GPS定位),,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。