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的代理,并重写代理方法。代理方法有加载地图结果的处理,还有对地图标注(大头针)的动作处理。

 

 

你可能感兴趣的:(ios)