• iOS_城市定位


    技术点-利用CoreLoaction框架,实现城市定位功能。


    原理:

    利用苹果官方提供的CoreLocation框架实现城市定位的功能;

    该框架主要包括两个比较有用的类:定位类CLLocationManager、地理编码类ClGeoCoder。


    代码:

     1 //  Copyright © 2016年 刘勇虎. All rights reserved.
     2 //
     3 
     4 #import "ViewController.h"
     5 #import <CoreLocation/CoreLocation.h>
     6 
     7 @interface ViewController ()<CLLocationManagerDelegate>
     8 @property(strong,nonatomic)CLLocationManager *locationMananger;
     9 @property(strong,nonatomic)CLLocation *startPoint;
    10 @property(strong,nonatomic)CLGeocoder *geoCode;
    11 @property (weak, nonatomic) IBOutlet UILabel *cityName;
    12 
    13 @end
    14 
    15 @implementation ViewController
    16 //    开始定位
    17 - (IBAction)startLocationing:(UIButton *)sender {
    18         [_locationMananger startUpdatingLocation];
    19 }
    20 
    21 - (void)viewDidLoad {
    22     [super viewDidLoad];
    23     // Do any additional setup after loading the view, typically from a nib.
    24     
    25     
    26     _geoCode = [[CLGeocoder alloc]init];
    27     self.locationMananger = [[CLLocationManager alloc]init];
    28     _locationMananger.delegate = self;
    29     _locationMananger.desiredAccuracy = kCLLocationAccuracyBest;
    30     //    向系统申请权限
    31     [_locationMananger requestWhenInUseAuthorization];
    32 
    33     
    34 }
    35 
    36 #pragma mark -- location delegate --
    37 //更新定位
    38 - (void)locationManager:(CLLocationManager *)manager
    39     didUpdateToLocation:(CLLocation *)newLocation
    40            fromLocation:(CLLocation *)oldLocation {
    41     
    42 //    反地理编码
    43 [_geoCode reverseGeocodeLocation:newLocation completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
    44     if (placemarks && placemarks.count > 0) {
    45         
    46         CLPlacemark *newPlaceMark = [placemarks firstObject];
    47         _cityName.text = newPlaceMark.locality;
    48         [_locationMananger stopUpdatingLocation];
    49     }
    50 }];
    51 }
    52 //定位失败后回调
    53 -(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{
    54     NSLog(@"error == %@",error);
    55 }

    修改info.Plist文件配置:

  • 相关阅读:
    php-基于面向对象的MySQL类
    php-迭代创建级联目录
    php-删除非空目录
    php-递归创建级联目录
    linux 用户管理
    mysql 语法大全
    dos命令下修改mysql密码的方法
    对 linux init.d的理解
    linux 重启服务器命令
    校验软件包
  • 原文地址:https://www.cnblogs.com/tig666666/p/5770804.html
Copyright © 2020-2023  润新知