地图

地图

一、iOS系统自带定位,用CLLocationManager就可以轻松的实现定位的操作,获得的是一组经纬度。

1、导入CoreLocation.framework框架

2、定义属性  CLLocationManager *_locationManager

3、@property(assign, nonatomic) id<CLLocationManagerDelegate> delegate;

4、@property(assign, nonatomic) CLLocationDistance distanceFilter; 

   设置过滤器的距离

5、@property(assign, nonatomic) CLLocationAccuracy desiredAccuracy; 

   设置精确度,位置服务大量消耗电池电量,下面罗列优先级别从上而下:

6、ios8.0之后请求授权,需要在plist文件中添加字段

NSLocationWhenInUseUsageDescription  值为YES请求定位的用户授权

requestWhenInUseAuthorization 只有应用在使用的时候允许授权

requestAlwaysAuthorization    在任何时候都需要授权,如果要在后台定位,需要有一个明确的提示,告诉用户,你的应用会在后台定位,电池会加快消耗

[_locationManager requestWhenInUseAuthorization];

7、- (void)startUpdatingLocation;

   开启位置服务

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

       当位置发生变化时调用这个方法

9 、-(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error

   当定位失败的时候调用这个方法


CLLocation的属性CLLocationCoordinate2D中包含了经度longitude 纬度latitude


二、根据上面得到的经纬度可以获取相应的身份、城市、街道等信息。

1、CLGeocoder *geocoder=[[CLGeocoder alloc]init];

CLGeocoder类中有几个方法,一个是把经纬度转化成大家能看懂的信息,比如:city,county,街道等等

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

根据经纬度反向地理编译出地址信息

CLPlacemark有很多属性,thoroughfare获取街道,locality获取城市,administrativeArea,获取省(直辖市).......


测试地址:经度:121.487237,纬度:31.380998


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值