你的位置:首页 > 软件开发 > 操作系统 > 苹果自带地图进行定位

苹果自带地图进行定位

发布时间:2016-08-09 17:00:03
最近项目中遇到了关于地图定位的需求,考虑到用三方库的话项目会变大,还是用了官方自带的地图。  这是结果图:    一、CoreLocation.frame是iPhone SDK中用来检测用户位置的框架。  1.要实现定位功能,首先引入这个框架。然后添加两个类和一个协议(CLLoc ...

苹果自带地图进行定位

  最近项目中遇到了关于地图定位的需求,考虑到用三方库的话项目会变大,还是用了官方自带的地图。

  这是结果图:

  苹果自带地图进行定位

  一、CoreLocation.frame是iPhone SDK中用来检测用户位置的框架。

  1.要实现定位功能,首先引入这个框架。然后添加两个类和一个协议(CLLocationManager、CLLocation、CllocationManagerDelegate)。

    精确度级别是通过位置管理器的desiredAccuracy属性来设置的,它的取值可以参照下表。精确级别越高,手机消耗的电越多。

desiredAccuracy属性值描述
kCLLocationAccuracyBest精确度最好
kCLLocationAccuracyNearestTenMeters精确到10米以内
kCLLocationAccuracyHundredMeters精确到100米以内
kCLLocationAccuracyKilometer精确到1000米以内
kCLLocationAccuracyThreeKilometers精确到3000米以内

 

  2.启动位置管理器进行定位。[locManager startUpdatingLocation](也可以停止检测位置更新[locManager stopUpdatingLocation])

  3.获取位置信息

    coordinate用来存储地理位置的latitude和longitude,分别代表地理位置的纬度和经度。

    location是CLLocation类的一个实例对象。

    altitude属性表示某个位置的海拔高度,返回值为浮点型,实际定位时极不准确。

    horizontalAccuracy属性表示水平准确度,返回值为浮点型。它是以coordinate为圆心的圆的半径,半径越小定位越准确,如果horizontalAccuracy为负值,表示Core Location定位失败。

    verticalAccuracy属性表示垂直水平准确度,返回值为浮点型。它的取值和海拔的取值altitude有关系,与实际情况相差很大。

  4.CLLocationManagerDelegate协议 

   苹果自带地图进行定位苹果自带地图进行定位
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations{ }- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{  NSString * errorMessage;  if ([error code] == kCLErrorDenied) {    errorMessage = @"访问被拒绝!";  }  if ([error code] == kCLErrorLocationUnknown) {    errorMessage = @"无法定位到你的位置!";  }}

原标题:苹果自带地图进行定位

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录