萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> ios >> iOS8 根據經緯度顯示地名

iOS8 根據經緯度顯示地名

   我們很多時候做項目的時候都選用通過手機獲取定位,然後傳數據給後台,這是iOS8根據經緯度顯示地名的demo

  //1.導入框架

  //

  // 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;

  /*

  經緯度相關設置

  */

  -(void)getLocationAll

  {

  self.locationManager = [[CLLocationManageralloc]init];

  _locationManager.delegate =self;

  _locationManager.desiredAccuracy =kCLLocationAccuracyBest;

  _locationManager.distanceFilter =10;

  [_locationManagerrequestAlwaysAuthorization];//添加這句

  [_locationManagerstartUpdatingLocation];

  }

  /*

  //通過經緯度得到當前地理位置

  -(void)change{

  defaluts=[NSUserDefaultsstandardUserDefaults];

  CLLocationCoordinate2D coordinate;

  coordinate.latitude = [[NSStringstringWithFormat:@"%@",jingduStr]floatValue];

  coordinate.longitude = [[NSStringstringWithFormat:@"%@",weiduStr]floatValue];

  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(@"終極目標:1:%@2:%@3:%@4:%@", placemark.locality, placemark.subLocality,placemark.thoroughfare,placemark.subThoroughfare);

  }];

  #pragma mark--實現CLLocationManagerDelegate的代理方法,獲取地理位置(镔)===========================================================================

  //(1)獲取到位置數據,返回的是一個CLLocation的數組,一般使用其中的一個

  - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations

  {

  CLLocation *currLocation = [locations lastObject];

  NSLog(@"經度=%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)獲取用戶位置數據失敗的回調方法,在此通知用戶

  - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error

  {

  if ([error code] ==kCLErrorDenied)

  {

  //訪問被拒絕

  }

  if ([errorcode] == kCLErrorLocationUnknown) {

  //無法獲取位置信息

  }

  }

copyright © 萬盛學電腦網 all rights reserved