如何使iOS擷取的地理位置有效

來源:互聯網
上載者:User

標籤:des   blog   io   os   ar   strong   sp   div   on   

關於CLLocationManager擷取地理位置遇到的一些小事;

項目使arc  

第一步:擷取是否允許定位

-(BOOL)IsLocationServicesEnabled{    /**     * [CLLocationManager locationServicesEnabled] 系統設定允許定位服務是否開啟     * [CLLocationManager authorizationStatus] != kCLAuthorizationStatusDenied  APP是否開啟定位服務     */    return ([CLLocationManager locationServicesEnabled] && [CLLocationManager authorizationStatus] != kCLAuthorizationStatusDenied);}

第二步:開始定位,建立全域變數 (個人理解:如果CLLocationManager的屬性不是全域的在ARC項目中,出了函數體 局部變數就會被release)

@property (nonatomic, strong) CLLocationManager *userLocation;

  

-(void)getUserLocationInfomation{    if ([self IsLocationServicesEnabled])    {                if (!self.userLocation)        {            self.userLocation = [[CLLocationManager alloc]init];        }                self.userLocation.delegate = self;        //選擇定位的方式為最優的狀態        self.userLocation.desiredAccuracy = kCLLocationAccuracyBest;        //發生事件的最小距離間隔        self.userLocation.distanceFilter = kCLDistanceFilterNone;        [self.userLocation startUpdatingLocation];    }}

第三部分:delegate回調

#pragma locationManager delegate-(void)locationManager:(CLLocationManager *)manager   didUpdateToLocation:(CLLocation *)newLocation          fromLocation:(CLLocation *)oldLocation{    NSTimeInterval locationAge = -[newLocation.timestamp timeIntervalSinceNow];    if (locationAge > 180.0) return;    // 測試該水平精度是否有效    if (newLocation.horizontalAccuracy < 0) return;    // 寫你的代碼 現在拿到的newLocation是有效
[self.userLocation stopUpdatingLocation];
self.userLocation.delegate = nil;
}-(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{ }

  

如何使iOS擷取的地理位置有效

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.