zoukankan      html  css  js  c++  java
  • 定位功能(使用系统地图)

    1.导入MapKit,CoreLocation库

    2.viewController文件

    #import "ViewController.h"
    #import <CoreLocation/CoreLocation.h>
    
    @interface ViewController ()<CLLocationManagerDelegate>
    {
        CLLocationManager *_locationManager;
    }
    @end
    
    @implementation ViewController
    
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        //1.创建locationManager
        _locationManager = [[CLLocationManager alloc] init];
        
        //2.info.plist文件加入字段
        //NSLocationWhenInUseDescription
        //NSLocationAlwaysUsageDescription
        
        if (![CLLocationManager locationServicesEnabled]) {
            NSLog(@"定位服务未打开");
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"请打开定位服务" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
            [alert show];
        }
        
        //3.请求权限(一直允许访问位置信息)
        [_locationManager requestAlwaysAuthorization];
        //程序运行期间允许访问位置信息
        //[_locationManager requestWhenInUseAuthorization];
        
        //4.定位精确度
        _locationManager.desiredAccuracy = kCLLocationAccuracyBest;
        //设置隔多少米后更新位置信息
        _locationManager.distanceFilter = 100;
        _locationManager.delegate = self;
        
        //5.开启定位
        [_locationManager startUpdatingLocation];
    }
    
    
    
    #pragma mark --CLLocationManagerDelegate---
    //权限状态改变
    -(void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
    {
        NSLog(@"%i",status);
        //给出相应提示信息
        if (status != kCLAuthorizationStatusAuthorizedAlways) {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"请设置程序允许访问位置信息" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
            [alert show];
        }
        else
        {
            [_locationManager startUpdatingLocation];
        }
    }
    //更新到用户位置信息
    -(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
    {
        CLLocation *location = [locations firstObject];
        NSLog(@"%f-%f",location.coordinate.latitude,location.coordinate.longitude);
        //反编码
        CLGeocoder *geo = [[CLGeocoder alloc] init];
        [geo reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) {
            NSLog(@"%@",error);
        }];
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    @end
  • 相关阅读:
    好用的PHP读取EXCEL类
    PHP获取函数参数数组
    在 Win7 下运行 TC 2.0 / TC3.0 / BC 3.1 / QB 4.5 等 DOS 开发工具
    用PHP生成等比图像的方法
    判断当前发布日期是否超过今天
    HTTP响应代码中文详解
    __autoload自动加载函数
    __isset魔术方法
    php下载远程文件类(支持断点续传)
    用PHP保存从摄像头拍下来的图片
  • 原文地址:https://www.cnblogs.com/liaods/p/4805378.html
Copyright © 2011-2022 走看看