4. 使用CLLocationManager得到設備當前經緯度信息

4.  使用CLLocationManager得到設備當前經緯度信息

幾乎全部的蘋果設備都有GPS模塊,經過GPS模塊能夠得到設備的當前位置信息,能夠經過CLLocationManager和其代理類CLLocationManagerDelegate來得到啓動和中止跟蹤,並得到設備當前經的緯度信息。另外,還能夠爲設備進入某個特定區域作出提示。經過下面的程序,當用戶點擊按鈕,開始跟蹤設備,並經過UILabel實時顯示當前設備的經緯度信息。實現步驟以下所示。
建立項目併爲項目添加CoreLocation.framework框架。
在界面上添加UIButton和UILabel組件。
在.h中實現CLLocationManagerDelegate代理,聲明CLLocationManager屬性和UILabel屬性,並聲明UIButton的點擊事件方法。
#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
@interface AmakerViewController : UIViewController<CLLocationManagerDelegate>
- (IBAction)start:(id)sender;
@property (strong, nonatomic) IBOutlet UILabel *myLocatoinInfo;
@property (strong,nonatomic) CLLocationManager *lm;
@end
在viewDidLoad方法中判判定位服務是否能夠利用,實例化並指定屬性。
- (void)viewDidLoad
{
    [super viewDidLoad];
           if ([CLLocationManager locationServicesEnabled]) {
        self.lm = [[CLLocationManager alloc]init];
        self.lm.delegate = self;
        // 最小距離
        self.lm.distanceFilter=kCLDistanceFilterNone;
    }else{
        NSLog(@"定位服務不可利用");
    }
}
在CLLocationManagerDelegate的更新方法中實時得到最新位置信息,並顯示在UILabel中。
- (void)locationManager:(CLLocationManager *)manager
           didUpdateToLocation:(CLLocation *)newLocation
                          fromLocation:(CLLocation *)oldLocation{
    self.myLocatoinInfo.text = [NSString stringWithFormat:@"[%f,%f]",newLocation.coordinate.latitude,newLocation.coordinate.longitude];
}
在UIButton的點擊事件中啓動跟蹤。
- (IBAction)start:(id)sender {
    if (self.lm!=nil) {
        [self.lm startUpdatingLocation];
    }
}
程序的運行結果以下圖所示。
git

相關文章
相關標籤/搜索