我們很多時(shí)候做項(xiàng)目的時(shí)候都選用通過手機(jī)獲取定位,然后傳數(shù)據(jù)給后臺(tái),這是iOS8根據(jù)經(jīng)緯度顯示地名的demo
//1.導(dǎo)入框架
//
// NearByViewController.m
// nearDemo
//
// Created by apple on 14/12/5.
// Copyright (c) 2014年 youdianshang. All rights reserved.
//
#import
#import
@interface NearByViewController ()
{
NSUserDefaults *defaluts;
NSString * jingduStr;
NSString *weiduStr;
NSString *LocationAddress;
}
@property(nonatomic,retain)CLLocationManager *locationManager;
@property(strong,nonatomic)UILabel *positionLabel;
/*
經(jīng)緯度相關(guān)設(shè)置
*/
-(void)getLocationAll
{
self.locationManager = [[CLLocationManageralloc]init];
_locationManager.delegate =self;
_locationManager.desiredAccuracy =kCLLocationAccuracyBest;
_locationManager.distanceFilter =10;
[_locationManagerrequestAlwaysAuthorization];//添加這句
[_locationManagerstartUpdatingLocation];
}
/*
//通過經(jīng)緯度得到當(dāng)前地理位置
-(void)change{
defaluts=[NSUserDefaultsstandardUserDefaults];
CLLocationCoordinate2D coordinate;
coordinate.latitude = [[NSStringstringWithFormat:@"];
coordinate.longitude = [[NSStringstringWithFormat:@"];
CLLocation *newLocation=[[CLLocationalloc]initWithLatitude:coordinate.latitudelongitude: coordinate.longitude];
CLGeocoder *geocoder=[[CLGeocoderalloc] init];
[geocoder reverseGeocodeLocation:newLocationcompletionHandler:^(NSArray* placemarks,NSError* error)
{
MKPlacemark*placemark = [placemarks objectAtIndex:0];
LocationAddress = [NSStringstringWithFormat:@"@", placemark.locality, placemark.subLocality,placemark.thoroughfare, placemark.subThoroughfare];
[defaluts setObject:LocationAddress forKey:@"address"];
NSLog(@"終極目標(biāo):1:%@2:%@3:%@4:%@", placemark.locality, placemark.subLocality,placemark.thoroughfare,placemark.subThoroughfare);
}];
#pragma mark--實(shí)現(xiàn)CLLocationManagerDelegate的代理方法,獲取地理位置(鑌)===========================================================================
//(1)獲取到位置數(shù)據(jù),返回的是一個(gè)CLLocation的數(shù)組,一般使用其中的一個(gè)
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
CLLocation *currLocation = [locations lastObject];
NSLog(@"經(jīng)度=%f緯度=%f高度=%f", currLocation.coordinate.latitude, currLocation.coordinate.longitude, currLocation.altitude);
jingduStr =[NSStringstringWithFormat:@"%f", currLocation.coordinate.latitude];
weiduStr =[NSStringstringWithFormat:@"%f", currLocation.coordinate.longitude];
NSLog(@"jijijijijij:%@",jingduStr);
[self change];
}
//(2)獲取用戶位置數(shù)據(jù)失敗的回調(diào)方法,在此通知用戶
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
if ([error code] ==kCLErrorDenied)
{
//訪問被拒絕
}
if ([errorcode] == kCLErrorLocationUnknown) {
//無法獲取位置信息
}
}
更多信息請(qǐng)查看IT技術(shù)專欄