博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS定位与地图
阅读量:4351 次
发布时间:2019-06-07

本文共 1568 字,大约阅读时间需要 5 分钟。

定位:

  手机上定位的实现主要有三种方式:基站(附近基站的位置),wifi(所连接路由器的位置),卫星(最准确,也最耗能)。

iOS的定位功能主要是由CLLocationManager类来完成的。这个类属于CoreLocation类库,所以使用定位功能之前,现在头文件中导入该类库。

 

定位的步骤:  

  1. 通过类方法判断定位服务是否开启,若为NO,则先要提醒用户在手机上设置开启定位服务;

    + (BOOL)locationServicesEnabled 

  2. 通过类方法判断授权状态(iOS8之后)。授权状态的返回类型是枚举,大概分为:禁止(任何时候不可以)&在程序运行期间允许&一直允许。若为禁止,则可以给用户发送授权请求,然后等待用户同意或者拒绝;

    + (CLAuthorizationStatus)authorizationStatus  // 返回授权状态

        [_locationManager requestAlwaysAuthorization];  // 请求一直允许授权

        [_locationManager requestWhenInUseAuthorization];  //请求程序运行期间允许授权

  3.创建CLLocationManager实例,并设置一些属性(定位精度,频率等);   

        locationManager.desiredAccuracy = kCLLocationAccuracyBest

        CLLocationDistance distance = 10.0; //10米更新

        locationManager.distanceFilter = distance;

  4.设置locationManager对象的代理,并重写代理方法

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

     - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation;

  注意:第一个方法的返回参数是每项为CLLocation类型的数组,

  5.这些都弄完后,就可以开始定位了,最后当使用完定位后记得要停止定位,因为定位是相当消耗性能和电量的。

     [locationManager startUpdatingLocation]; //开始定位

         [locationManager startUpdatingHeading//开始导航

 

地图:

  iOS的地图功能是集成在MapKit框架中的,所以首先要在头文件中导入。

  现在很多地图应用都是一出现地图,正中央就是用户当前所在位置。

使用地图的步骤:

  1. 创建mapView,要使用地图功能,首先要有地图视图。紧接着设置mapView的一些属性,比如地图类型(平面,立体等),跟随类型(不跟随,跟随,跟随且跟随方向)。还可以调用mapView的方法添加标注视图;(大头针视图和tabView里面的cell很相似,都由代理方法返回,都可以复用,都可以自定义)。

  2. 设置mapView的代理,并重写代理方法。代理方法有加载地图结果的处理,还有对地图标注(大头针)的动作处理。

 

 

转载于:https://www.cnblogs.com/wangerxiansheng/p/4498108.html

你可能感兴趣的文章
[学习笔记] 关于组合数的一些总结
查看>>
linux分割字符串操作
查看>>
aspnet企业级开发:iis5伪静态
查看>>
PHP学习2
查看>>
一个不错的计时器类
查看>>
多实例Mysql配置
查看>>
CentOS6.5桌面版安装VirtualBox提示错误/etc/init.d/vboxdrv setup
查看>>
KOA中间件源码解析
查看>>
构建之法阅读笔记03
查看>>
jquery 点击切换值
查看>>
vue+element前端自行分页
查看>>
C#操作XML
查看>>
tkinter学习02
查看>>
Mapnik使用postgres中的栅格数据
查看>>
html基本知识
查看>>
IOS手势不识别
查看>>
IOS网络编程之请求内容
查看>>
爬虫——为什么有代理
查看>>
HDU 1599 find the mincost route(floyd求最小环 无向图)
查看>>
vue v-for循环checkbox存在的问题
查看>>