iOS 地图和定位功能

1:定位使用的生活场景

在移动互联网时代,移动app能解决用户的很多生活琐事,比如导航:去任意陌生的地方

周边:找餐馆、找酒店、找银行、找电影院

在上述应用中,都用到了地图和定位功能

2:iOS定位依赖的框架

在iOS开发中,要想加入这2大功能,必须基于2个框架进行开发

Map Kit :用于地图展示(比较重量级)

Core Location :用于地理定位

Map Kit的定位是基于Core Location的

iOS定位热门术语:

LBS :Location Based Service

SoLoMo :Social Local Mobile(索罗门)

3:CoreLocation框架使用

CoreLocation框架使用前提

导入框架

导入主头文件

#import <CoreLocation/CoreLocation.h>

CoreLocation框架使用须知:

CoreLocation框架中所有数据类型的前缀都是CL

CoreLocation中使用CLLocationManager对象来做用户定位

4:CLLocationManager的常用操作

开始用户定位

- (void)startUpdatingLocation;

停止用户定位

- (void) stopUpdatingLocation;

当调用了startUpdatingLocation方法后,就开始不断地定位用户的位置,中途会频繁地调用代理的下面方法

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations;

locations参数里面装着CLLocation对象

CLLocation用来表示某个位置的地理信息,比如经纬度、海拔等等

@property(readonly, nonatomic) CLLocationCoordinate2D coordinate;

经纬度

@property(readonly, nonatomic) CLLocationDistance altitude;

海拔

@property(readonly, nonatomic) CLLocationDirection course;

路线,航向(取值范围是0.0° ~ 359.9°,0.0°代表真北方向)

@property(readonly, nonatomic) CLLocationSpeed speed;

行走速度(单位是m/s)

用- (CLLocationDistance)distanceFromLocation:(const CLLocation *)location方法可以计算2个位置之间的距离

@property(assign, nonatomic) CLLocationDistance distanceFilter;

每隔多少米定位一次

@property(assign, nonatomic) CLLocationAccuracy desiredAccuracy;

定位精确度(越精确就越耗电)

CLLocationCoordinate2D是一个用来表示经纬度的结构体,定义如下

typedef struct {

CLLocationDegrees latitude; // 纬度

CLLocationDegrees longitude; // 经度

} CLLocationCoordinate2D;

一般用CLLocationCoordinate2DMake函数来创建CLLocationCoordinate2D

5:用户隐私的保护

从iOS 6开始,苹果在保护用户隐私方面做了很大的加强,以下操作都必须经过用户批准授权

要想获得用户的位置

想访问用户的通讯录、日历、相机、相册等等

当想访问用户的隐私信息时,系统会自动弹出一个对话框让用户授权

5.1

开发者可以在后缀名为Info.plist的文件中

设置NSLocationUsageDescription说明定位的目的(Privacy - Location Usage Description)

一旦用户选择了“Don’t Allow”,意味着你的应用以后就无法使用定位功能

为了严谨起见,最好在使用定位功能之前判断当前应用的定位功能是否可用

CLLocationManager有个类方法可以判断当前应用的定位功能是否可用

+ (BOOL)locationServicesEnabled;

时间: 2024-08-07 16:42:57

iOS 地图和定位功能的相关文章

iOS地图及定位功能基本实现的详尽描述

首先创建一个viewController: 添加MapKit,CoreLocation框架 一.添加地图 1.初始化地图视图: @property (nonatomic, strong) MKMapView *mapView; self.mapView =[[MKMapView alloc]initWithFrame:self.view.bounds]; 2.设置地图的显示类型,三种:标准,卫星地图,混合 self.mapView.mapType { MKMapTypeStandard = 0,

iOS 自带定位功能

第一步:导入头文件 #import <CoreLocation/CoreLocation.h> #import <CoreLocation/CLLocationManagerDelegate.h> 第二步:设置代理 CLLocationManagerDelegate 第三步:创建一个属性 @property(nonatomic, strong) CLLocationManager *locationManager; 第四步:初始化     //定位服务管理对象初始化     _lo

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

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

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

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

[从无到有] iOS地图与定位

iOS中有三个定位服务组件: wifi定位,通过查询一个wifi路由器的地理位置的信息.比较省电,ipod touch和iPad也可以采用. 蜂窝基站定位,通过移动运用商基站定位,也适合有3g版本的iPod touch和iPad GPS卫星定位,通过3-4颗GPS定位位置定位,最为准确,但耗电量大,不能遮挡.  Core Location:      是iPhone.iPad等开发定位服务应用程序的框架,主要适用的类是CLlocationManager,通过他实现定位服务 利用 Map Kit创

iOS开发--添加定位功能

.h 首先在头文件中#import <CoreLocation/CoreLocation.h> 添加CLLocationManagerDelegate协议 @property (strong, nonatomic) IBOutlet CLLocationManager *myLocationManager; .m 在- (void)viewDidLoad添加以下代码: self.myLocationManager=[[CLLocationManager alloc]init]; [self.m

IOS地图及定位使用

1.定位 定位使用CoreLocation库,引入CoreLocation/CoreLocation.创建CLLocationManager对象,使用startUpdatingLocation方法开始更新位置信息. _mgr = [[CLLocationManager alloc] init]; [_mgr requestWhenInUseAuthorization]; _mgr.delegate = self; [_mgr startUpdatingLocation]; 更新成功后,会调用CL

iOS UI进阶-4.0 地图与定位

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

iOS地图定位(Map)

1.地图的简介 在移动互联网时代,移动app能解决用户的很多生活琐事,比如    导航:去任意陌生的地方    周边:找餐馆.找酒店.找银行.找电影院    手机软件:微信摇一摇.QQ附近的人.微博.支付宝等 在上述应用中,都用到了地图和定位功能,在iOS开发中,要想加入这两大功能,必须基于两个框架进行开发    Map Kit :用于地图展示    Core Location :用于地理定位 地图定位(CoreLocation框架,地理编码与反地理编码)地图显示(MapKit框架)自定义大头针