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
  • 相关阅读:
    5种类型的程序猿
    cocos2dx 关于lua 绑定的环境配置官方文档翻译与 将自己定义c++方法绑定到lua的的方法
    智能聊天机器人实现(源代码+解析)
    storm trident merger
    分析Redis架构设计
    Spring+Struts+Hibernate 简介(转)
    java面试题(开发框架)
    Jsp+Servlet+JavaBean经典MVC模式理解
    Loadrunner中影响"响应时间"的设置
    phpredis中文手册——《redis中文手册》 php版(转)
  • 原文地址:https://www.cnblogs.com/cqchen/p/3802046.html
Copyright © 2011-2022 走看看