你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> IOS開發實例-獲取用戶當前地理坐標

IOS開發實例-獲取用戶當前地理坐標

編輯:IOS開發綜合

一、需求

獲取用戶當前所在位置的經緯度。


二、實現過程

擬采用CLLocationManager類獲取用戶位置信息,所需步驟

1、導入CoreLocation.frameWork

2、通過CLLocationManager類獲取位置信息


三、代碼

#import "TestViewController.h"

@implementation TestViewController

#pragma mark - view life cycle
- (void)viewDidLoad
{
    [super viewDidLoad];
    
    // example
    // 實例化一個位置管理器
    self.locationManager = [[CLLocationManager alloc] init];
    
    self.locationManager.delegate = self;
    
    // 設置定位精度
    // kCLLocationAccuracyNearestTenMeters:精度10米
    // kCLLocationAccuracyHundredMeters:精度100 米
    // kCLLocationAccuracyKilometer:精度1000 米
    // kCLLocationAccuracyThreeKilometers:精度3000米
    // kCLLocationAccuracyBest:設備使用電池供電時候最高的精度
    // kCLLocationAccuracyBestForNavigation:導航情況下最高精度,一般要有外接電源時才能使用
    self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
    
    // distanceFilter是距離過濾器,為了減少對定位裝置的輪詢次數,位置的改變不會每次都去通知委托,而是在移動了足夠的距離時才通知委托程序
    // 它的單位是米,這裡設置為至少移動1000再通知委托處理更新;
    self.locationManager.distanceFilter = 1000.0f; // 如果設為kCLDistanceFilterNone,則每秒更新一次;
    
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

#pragma mark - Actions
- (IBAction)buttonClicked:(id)sender
{
    // 判斷的手機的定位功能是否開啟
    // 開啟定位:設置 > 隱私 > 位置 > 定位服務
    if ([CLLocationManager locationServicesEnabled]) {
        // 啟動位置更新
        // 開啟位置更新需要與服務器進行輪詢所以會比較耗電,在不需要時用stopUpdatingLocation方法關閉;
        [self.locationManager startUpdatingLocation];
    }
    else {
        NSLog(@"請開啟定位功能!");
    }
}

#pragma mark - CLLocationManagerDelegate
// 地理位置發生改變時觸發
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
    // 獲取經緯度
    NSLog(@"緯度:%f",newLocation.coordinate.latitude);
    NSLog(@"經度:%f",newLocation.coordinate.longitude);
    // 停止位置更新
    [manager stopUpdatingLocation];
}

// 定位失誤時觸發
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
    NSLog(@"error:%@",error);
}

@end

四、總結

CLLocationManager開啟用戶位置更新後比較耗電,不需要時要及時關閉。


  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved