iOSiOS黑科技iOS项目

iOS获取定位并获取位置信息

2016-11-15  本文已影响7670人  Smallwolf_JS

直接进入主题

在App开发中定位和地图关系紧密,定位使用的类通常以CL开头,而地图服务的类以MK开头),可以只定位而不使用地图,也可以只用地图而不定位,只是他们结合很紧密,经常一起使用而已。
在iOS中,定位服务基于CoreLocation框架,定位时主要使用CLLocationManager、CLLocationManagerDelegate和CLLocation,其中CLLocationManager类是定位服务管理类,他能够使我们获得设备的位置、高度、速度、运行方向等信息,也可以监控设备进出某个区域。而CLLocationManagerDelegate是CLLocationManager类的委托协议,CLLocation类封装了位置和高度信息。

#import <CoreLocation/CoreLocation.h>      //添加定位服务头文件(不可缺少)    
@interface ViewController ()<CLLocationManagerDelegate>{//添加代理协议 CLLocationManagerDelegate
    CLLocationManager *_locationManager;//定位服务管理类
    CLGeocoder * _geocoder;//初始化地理编码器
}
@end```
//初始化类
<key>NSLocationWhenInUseUsageDescription</key>
<string>when</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>always</string>```
添加代理方法解析地址
- (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler; ```
反地理编码:根据给定的经纬度,获得具体的位置信息

定位的相关知识
使用iOS系统的iPhone、iPod touch及iPad都可以提供定位服务,而在iOS设备中能够提供以下3种不同的定位途径:

那么我们在编程时究竟该采用哪种定位方式呢?
这个其实完全不用担心,iOS不像Android系统那样,开发者在定位服务编程时可以指定采用哪种途径定位,iOS的API把底层这些细节屏蔽掉了,开发人员和用户并不知道当前设备是采用哪种方式进行定位的,iOS系统会根据设备的情况和周围的环境,采用一套最佳的解决方案。其核心思想是:如果能够接收GPS信号,则优先采用GPS定位,否则将采用WiFi定位,然后才会去考虑蜂窝基站定位。

上一篇下一篇

猜你喜欢

热点阅读