IOS定位操作

名称:IOS定位操作

供应商:北京沃赢科技有限公司

价格:面议

最小起订量:1/件

地址:北京市海淀区银海大厦

手机:18201568921

联系人:刘老师 (请说在中科商务网上看到)

产品编号:77454726

更新时间:2021-02-03

发布者IP:123.120.35.46

详细说明

  简介

  在IOS中通过CoreLocation定位,可以获取到用户当前位置,同时能得到装置移动信息。

  实例步骤

  1、创建一个简单的View based application(视图应用程序)。

  2、择项目文件,然后选择目标,然后添加CoreLocation.framework,如下所示

  3、在ViewController.xib中添加两个标签,创建ibOutlet名为latitudeLabel和longtitudeLabel的标签

  4、现在通过选择" File-> New -> File... -> "选择Objective C class 并单击下一步

  5、把"sub class of"作为NSObject,将类命名为LocationHandler

  6、选择创建

  7、更新LocationHandler.h,如下所示

  #import

  #import

  @protocol LocationHandlerDelegate

  @required

  -(void) didUpdateToLocation:(CLLocation*)newLocation

  fromLocation:(CLLocation*)oldLocation;

  @end

  @interface LocationHandler : NSObject{

  CLLocationManager *locationManager;}@property(nonatomic,strong)

  id

  delegate;

  +(id)getSharedInstance;

  -(void)startUpdating;

  -(void)

  stopUpdating;

  @end

  8、更新LocationHandler.m,如下所示

  #import "LocationHandler.h"

  static LocationHandler *DefaultManager = nil;

  @interface LocationHandler()

  -(void)initiate;@end@implementation LocationHandler

  +(id)getSharedInstance{

  if (!DefaultManager)

  {

  DefaultManager = [[self allocWithZone:NULL]init];

  [DefaultManager initiate];

  }

  return DefaultManager;

  }

  -(void)initiate{

  locationManager = [[CLLocationManager alloc]init];

  locationManager.delegate = self;

  }

  -(void)startUpdating{

  [locationManager startUpdatingLocation];

  }

  -(void) stopUpdating{

  [locationManager stopUpdatingLocation];

  }

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

  if ([self.delegate respondsToSelector:

  @selector

  (didUpdateToLocation:fromLocation:)])

  {

  [self.delegate didUpdateToLocation:oldLocation

  fromLocation:newLocation];

  }

  }

  @end

  9、更新ViewController.h,如下所示

  #import

  #import "LocationHandler.h"

  @interface ViewController : UIViewController{

  IBOutlet UILabel *latitudeLabel;

  IBOutlet UILabel *longitudeLabel;

  }

  @end

  10、更新ViewController.m,如下所示

  #import "ViewController.h"

  @interface ViewController ()

  @end

  @implementation ViewController

  - (void)viewDidLoad{

  [super viewDidLoad];

  [[LocationHandler getSharedInstance]setDelegate:self];

  [[LocationHandler getSharedInstance]startUpdating];

  }

  - (void)didReceiveMemoryWarning{

  [super didReceiveMemoryWarning];

  // Dispose of any resources that can be recreated.

  }

  -(void)didUpdateToLocation:(CLLocation *)newLocation

  fromLocation:(CLLocation *)oldLocation{

  [latitudeLabel setText:[NSString stringWithFormat:

  @"Latitude: %f",newLocation.coordinate.latitude]];

  [longitudeLabel setText:[NSString stringWithFormat:

  @"Longitude: %f",newLocation.coordinate.longitude]];

  }

  @end