美文网首页iOS开发将来跳槽用
定位和地图功能简介

定位和地图功能简介

作者: fwlong | 来源:发表于2016-06-18 18:51 被阅读46次

CoreLocation:用于地理定位,地理编码,区域监听等(着重功能实现
MapKit:用于地图展示,如大头针,路线,覆盖层展示等(着重界面展示

热门专业术语

LBS:Location Based Services 基于位置的服务
SoLoMo:Social Local Mobile(索罗门) 社交化,本地化,移动化

CoreLocation框架的使用

1.导入框架(Xcode5.0之后可以省略)
2.导入头文件

#import <CoreLocation/CoreLocation.h>

3.CoreLocation使用须知
1)CoreLocation中所有数据类型的前缀都是CL
2)CoreLocation中使用CLLocationManager对象来做用户定位

CLLocationManager

∆开始更新用户位置

-(void)startUpdatingLocation;

∆停止更新用户位置

-(void)stopUpdatingLocation;

当调用了startUpdatingLocation方法后,就开始不断地请求、刷新用户的位置,一旦请求到用户位置就会调用代理的下面方法

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

locations参数里面装着CLLocation对象

CLLocationManager补充

为了谨慎起见,最好在使用定位功能之前判断当前应用的定位功能是否可用
*CLLocationManager有个类方法可以判断当前应用的定位功能是否可用

+(BOOL)locationServicrsEnabled;

@property(nonatomic,assign)CLLocationAccuracy desiredAccuracy;

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

CLLocation

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

//经纬度
@property(readonly, nonatomic) CLLocationCoordinate2D coordinate;
//海拔
@property(readonly, nonatomic) CLLocationDistance altitude;
//路线,航向(取值范围是0.0˚~359.9˚,0.0˚代表正北方向)
@property(readonly, nonatomic) CLLocationDirection course;
//移动速度
@property(readonly, nonatomic) CLLocationSpeed speed;

用以下方法可以计算2个位置之间的距离

-(CLLocationDistance)distanceFromLocation:(const CLLocation * )location;

CLLocationCoordinate2D

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

typedef struct{
             CLLocationDegrees latitude;//经度
             CLLocationDegrees longitude;//经度
}CLLocationCoordinate2D;
//一般用CLLocationCoordinate2DMake函数来创建CLLocationCoordinate2D

CLGeocoder

*使用CLGeocoder可以完成“地理编码”和“反地理编码”
地理编码:根据给定的地名,获得具体的位置信息(比如经纬度、地址的全程等)
反地理编码:根据给定的经纬度,获得具体的位置信息
地理编码方法

- (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler;

反地理编码方法

- (void)reverseGeocodeLocation:(CLLocation *)location completionHandler:(CLGeocodeCompletionHandler)completionHandler;

CLGeocodeCompletionHandler

*当地理、反地理编码完成时,就会调用CLGeocodeCompletionHandler

typedef void (^CLGeocodeCompletionHandler)(NSArray *placemarks, NSError *error);
//这个block传递2个参数
//error:当编码出错时(比如编码不出具体的信息)有值
//placemarks:里面装着CLPlacemark对象

CLPlacemark

*CLPlacemark的字面意思是地标,封装详细的地址位置信息

//地理位置
@property(nonatomic,readonly)CLLocation * location;
//区域
@property(nonatomic,readonly)CLRegion * region;
//详细地址信息
@property(nonatomic,readonly)NSDictionary * addressDictionary;
//地址名称
@property(nonatomic,readonly)NSString * name;
//城市
@property(nonatomic,readonly)NSString * locality;

相关文章

  • 定位和地图功能简介

    CoreLocation:用于地理定位,地理编码,区域监听等(着重功能实现)MapKit:用于地图展示,如大头针,...

  • CoreLocation定位

    定位 -在iOS开发中想要加入定位和地图功能,那么必须基于CoreLocation和MapKit2个框架进行开发-...

  • 定位CoreLocation

    一、定位介绍 现在很多社交、电商、团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的。的...

  • iOS学习笔记19-地图(一)定位CoreLocation

    一、定位介绍 现在很多社交、电商、团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的。的...

  • 百度地图定位迷之报错(latitude : 4.9E-324

    估计很多小伙伴们在开发的时候会用到定位和地图功能,用的最多的应该是百度地图和高德地图,这两天我在使用百度地图定位的...

  • 地图和定位简介

    简介 在移动互联网时代,移动app能解决用户的很多生活琐事,比如周边:找餐馆、找KTV、找电影院等等导航:根据用户...

  • Flutter集成高德定位和地图功能

    定位集成 配置高德定位依赖库 新建 Flutter 项目,使用 Android Studio 打开项目里的 and...

  • iOS开发之CoreLocaiton框架使用(定位服务)

    前言 在iOS开发中,定位和地图功能是比较常用的功能之一,要想加入这2大功能,必须基于2个框架进行开发。 (1) ...

  • TabBar和定位的简介

    tabbar在我们开发中,经常会遇到有些页面有TabBar,有些没有,那么在工程中,如何让更多页面需要显示和隐藏T...

  • ios - 调用系统定位获取当前经纬度与地理信息

    项目中用到了城市定位,获取所在城市的经纬度以及名称。由于没有用到其他更复杂的地图功能,所以就选择了用系统自带的定位...

网友评论

    本文标题:定位和地图功能简介

    本文链接:https://www.haomeiwen.com/subject/yihvdttx.html