定位功能(使用系统地图)

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
时间: 2024-12-19 04:08:35

定位功能(使用系统地图)的相关文章

微信定位功能结合百度地图获取用户城市

需要结合百度地图的API,请先完成这篇文章的流程:<使用百度地图将经纬度转换成具体位置> 以vuejs为例 beforeMount () { var that = this; this.city = '正在定位城市...'; this.wxapi.getWxConfig({ url: window.location.href.split('#')[0] }).then(_ => { if (+(_.returnCode) == 0) { // 初始化微信配置 wx.config(_.da

(百度地图API)v4-2版本定位功能

这几天在看郭霖老师的大作,在百度地图这一张卡的好久,原因是因为百度更新迭代的速度太快了,导致老师的书上的版本已经淘汰又淘汰了,不过还是给了我很多的启发的啊.今晚自己就实现了一下百度地图的定位功能. 百度地图API的什么的,也就不多说了.官网上介绍的也比较详细,还都是中文的,仔细阅读下就行,对了,我用的是v4-2的版本.感觉只有晚上11点以后的工作效率才会翻倍啊,大家有没有这个体会啊,最近想做一款跑步的软件,当然是很简单的那种,做完了会贴上代码和大家来讨论的. 官网链接:http://develo

iOS 地图和定位功能

1:定位使用的生活场景 在移动互联网时代,移动app能解决用户的很多生活琐事,比如导航:去任意陌生的地方 周边:找餐馆.找酒店.找银行.找电影院 在上述应用中,都用到了地图和定位功能 2:iOS定位依赖的框架 在iOS开发中,要想加入这2大功能,必须基于2个框架进行开发 Map Kit :用于地图展示(比较重量级) Core Location :用于地理定位 Map Kit的定位是基于Core Location的 iOS定位热门术语: LBS :Location Based Service So

项目开发--------地图与定位功能

一.定位. 1.定位功能 : 定位是一个很常用的功能,如一些地图软件打开之后如果用户允许软件定位的话,那么打开软件后就会自动锁定到当前位置,如果用户手机移动那么当前位置也会跟随着变化.要实现这个功能需要使用Core Loaction中CLLocationManager类. 相关方法:(在前面的方法和属性属于较为常用和重要的) 示例代码: //地理定位----------------------------------------------- - (void)viewDidLoad { [sup

地图与定位(二)系统地图

iOS从6.0开始地图服务不再由谷歌驱动,而是改用自家地图,当然在国内它的数据是由高德地图提供的.这样一来,如果在iOS6.0之前进行地图开发的话使用方法会有所不同,基于目前的情况其实使用iOS6.0之前版本的系统基本已经寥寥无几了,所有在接下来的内容中不会再针对iOS5及之前版本的地图开发进行介绍. 在iOS中进行地图开发主要有两种方式,一种是直接利用MapKit框架进行地图开发,利用这种方式可以对地图进行精准的控制:另一种方式是直接调用苹果官方自带的地图应用,主要用于一些简单的地图应用(例如

地图和定位功能的实现-篇幅略大,手机慎入

来一起学习下地图和定位的使用吧,如有不足,欢迎指正 一.定位功能 1.ios7中的定位 1.1 导入 CoreLocation框架 1.2 创建 CLLocationManager对象 注意:要用强指针指向这个对象,一般采用懒加载来创建 1 private lazy var mgr : CLLocationManager = CLLocationManager() 1.3 设置代理,实现代理方法 1.4 开始定位 mgr.startUpdatingLocation() 1.5 优点:不需要设置用

【MUI】百度地图定位功能

博主最近进行一款APP开发,需要用到定位功能,经过一番折腾,终于搞定,不废话,代码如下 mui.plusReady(function() { var longitude, latitude; //var map = new BMap.Map("container"); // navigator.geolocation.getCurrentPosition(function(position) { // longitude = position.coords.longitude; //

浅谈百度地图的简单开发之结合方向传感器实现定位功能(三)

  今天我们来谈下百度地图的定位功能.在此之前我已经将百度地图的基本地图大概说了下,事实上百度地图的基本功能还有非常多的内容. 感兴趣的能够到百度地图的开发人员的官网看看.今天就開始来讲下百度地图中的定位功能. 今天所讲的百度地图所涉及的内容主要有:基本定位的实现.自己定义定位图标.结合方向传感器定位,选择定位中的几种模式(罗盘模式,普通模式,尾随模式). 一.基本定位的实现: 所谓定位无非就是获取到一个地方所处地球的经纬度坐标.这个反映到地图中就是一个点.可是怎么去实现一个定位呢?? 首先,须

Android定位&amp;地图&amp;导航——基于百度地图实现的定位功能

一.问题描述 LBS位置服务是android应用中重要的功能,应用越来越广泛,下面我们逐步学习和实现lbs相关的应用如定位.地图.导航等,首先我们看如何基于百度地图实现定位功能 二.配置环境 1.注册密钥:地址http://developer.baidu.com/map/ 2.下载定位SDK,并导入SDK如图所示: 三.编写MyApplication类 编写MyApplication类,为了使用方便我们可以将实现定位的方法封装的Application组件中 封装下列方法 1.  获取定位信息——