• iOS定位与地图


    定位:

      手机上定位的实现主要有三种方式:基站(附近基站的位置),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的代理,并重写代理方法。代理方法有加载地图结果的处理,还有对地图标注(大头针)的动作处理。

     

     

  • 相关阅读:
    lombok-@Accessors注解
    spring boot 当参数传入开头多个0时,报错:JSON parse error: Invalid numeric value: Leading zeroes not allowed
    linux查看历史操作记录并且显示执行时间
    IDEA中mybatis插件自动生成手写sql的xml文件
    CPU核数和load average的关系
    Jenkins--Credentials添加证书从git上拉代码
    解决输入git branch 进入编辑状态,mac下出现END,无法返回
    Git log和git reflog
    SpringCloud入门之常用的配置文件 application.yml和 bootstrap.yml区别
    springboot定时任务
  • 原文地址:https://www.cnblogs.com/wangerxiansheng/p/4498108.html
Copyright © 2020-2023  润新知