zoukankan      html  css  js  c++  java
  • iOS.定位服务与地图应用.02.地理信息反编码

    #import <UIKit/UIKit.h>
    #import <CoreLocation/CoreLocation.h>
    #import <CoreLocation/CLLocationManagerDelegate.h>
    #import <AddressBook/AddressBook.h>
    
    @interface T20140621213001ViewController : UIViewController<CLLocationManagerDelegate>
    
    //经度
    @property (weak, nonatomic) IBOutlet UITextField *txtLng;
    //纬度
    @property (weak, nonatomic) IBOutlet UITextField *txtLat;
    //高度
    @property (weak, nonatomic) IBOutlet UITextField *txtAlt;
    
    @property(nonatomic, strong) CLLocationManager *locationManager;
    
    @property(nonatomic, strong)  CLLocation *currLocation;
    
    @property (weak, nonatomic) IBOutlet UITextView *txtView;
    
    - (IBAction)reverseGeocode:(id)sender;
    
    
    @end
    #import "T20140621213001ViewController.h"
    
    @interface T20140621213001ViewController ()
    
    @end
    
    @implementation T20140621213001ViewController
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        
        //定位服务管理对象初始化
        _locationManager = [[CLLocationManager alloc] init];
        _locationManager.delegate = self;
        _locationManager.desiredAccuracy = kCLLocationAccuracyBest;
        _locationManager.distanceFilter = 1000.0f;
    }
    
    - (void)didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }- (void)viewWillAppear:(BOOL)animated
    {
        [super viewWillAppear:animated];
        //开始定位
        [_locationManager startUpdatingLocation];
    }
    
    - (void)viewWillDisappear:(BOOL)animated
    {
        [super viewWillDisappear:animated];
        //停止定位
        [_locationManager stopUpdatingLocation];
    }
    
    #pragma mark Core Location委托方法用于实现位置的更新
    - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
    {
        _currLocation = [locations lastObject];
        _txtLat.text = [NSString stringWithFormat:@"%3.5f",
                        _currLocation.coordinate.latitude];
        _txtLng.text = [NSString stringWithFormat:@"%3.5f",
                        _currLocation.coordinate.longitude];
        _txtAlt.text = [NSString stringWithFormat:@"%3.5f",
                        _currLocation.altitude];
        
    }
    
    - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
    {
        NSLog(@"error: %@",error);
    }
    
    
    - (IBAction)reverseGeocode:(id)sender {
        
        [self.txtLng resignFirstResponder];
        [self.txtLat resignFirstResponder];
        [self.txtAlt resignFirstResponder];
        
        CLGeocoder *geocoder = [[CLGeocoder alloc] init];
        
        [geocoder reverseGeocodeLocation:_currLocation
                       completionHandler:^(NSArray *placemarks, NSError *error) {
                           
                           if ([placemarks count] > 0) {
                               
                               CLPlacemark *placemark = placemarks[0];
                               
                               NSDictionary *addressDictionary =  placemark.addressDictionary;
                               
                               NSString *address = [addressDictionary
                                                    objectForKey:(NSString *)kABPersonAddressStreetKey];
                               address = address == nil ? @"": address;
                               
                               NSString *state = [addressDictionary
                                                  objectForKey:(NSString *)kABPersonAddressStateKey];
                               state = state == nil ? @"": state;
                               
                               NSString *city = [addressDictionary
                                                 objectForKey:(NSString *)kABPersonAddressCityKey];
                               city = city == nil ? @"": city;
                               
                               _txtView.text = [NSString stringWithFormat:@"%@ 
    %@ 
    %@",state, address,city];
                           }
                           
                       }];
    }
    
    
    @end
  • 相关阅读:
    iOS开发之--打印一堆奇怪东西的解决方案
    iOS开发之--从URL加载图片
    iOS开发之--搭建本地的SVN服务器
    HTML5
    swift
    swift
    HTML 换行
    HTML 注释
    HTML 水平线
    /etc/rc.d/rc.local
  • 原文地址:https://www.cnblogs.com/cqchen/p/3802046.html
Copyright © 2011-2022 走看看