`
janedoneway
  • 浏览: 582112 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

iPhone开发进阶(10)--- 在程序中使用GPS

 
阅读更多

From:http://www.2cto.com/kf/201110/108297.html

 

这一回简单地介绍一下GPS的使用方法。使用GPS大致分下面两步。

 

添加CoreLocation.framework。

生成CLLocationManager 测量位置。

测试代码如下:

 // LocationViewCtrl.h

#import <UIKit/UIKit.h>

#import <CoreLocation/CoreLocation.h>

@interface LocationViewCtrl : UIViewController <CLLocationManagerDelegate>{

  CLLocationManager *man;

}

@property(nonatomic, retain) CLLocationManager *man;

@end

 

LocationViewCtrl.m

#import "LocationViewCtrl.h"

#import <CoreLocation/CoreLocation.h>

 

@implementation LocationViewCtrl

@synthesize man;

 

- (void)viewDidLoad {

  [super viewDidLoad];

  man = [[CLLocationManager alloc] init];

 

  // 如果可以利用本地服务时

  if([man locationServicesEnabled]){

    // 接收事件的实例

    man.delegate = self;

    // 发生事件的的最小距离间隔(缺省是不指定)

    man.distanceFilter = kCLDistanceFilterNone;

    // 精度(缺省是Best)

    man.desiredAccuracy = kCLLocationAccuracyBest;

    // 开始测量

    [man startUpdatingLocation];

  }

}

 

// 如果GPS测量成果以下的函数被调用

- (void)locationManager:(CLLocationManager *)manager

  didUpdateToLocation:(CLLocation *)newLocation

      fromLocation:(CLLocation *)oldLocation{

 

  // 取得经纬度

  CLLocationCoordinate2D coordinate = newLocation.coordinate;

  CLLocationDegrees latitude = coordinate.latitude;

  CLLocationDegrees longitude = coordinate.longitude;

  // 取得精度

  CLLocationAccuracy horizontal = newLocation.horizontalAccuracy;

  CLLocationAccuracy vertical = newLocation.verticalAccuracy;

  // 取得高度

  CLLocationDistance altitude = newLocation.altitude;

  // 取得时刻

  NSDate *timestamp = [newLocation timestamp];

 

  // 以下面的格式输出format: <latitude>, <longitude>> +/- <accuracy>m @ <date-time>

  NSLog([newLocation description]);

 

  // 与上次测量地点的间隔距离

  if(oldLocation != nil){

    CLLocationDistance d = [newLocation getDistanceFrom:oldLocation];

    NSLog([NSString stringWithFormat:@"%f", d]);

  }

}

 

// 如果GPS测量失败了,下面的函数被调用

- (void)locationManager:(CLLocationManager *)manager

     didFailWithError:(NSError *)error{

  NSLog([error localizedDescription]);

}

...

测量精度有以下几类,精度越高越消耗电力。

 

kCLLocationAccuracyNearestTenMeters     10m

kCLLocationAccuracyHundredMeters  100m

kCLLocationAccuracyKilometer    1km

kCLLocationAccuracyThreeKilometers3km

因为在模拟器上不能设置经纬度,所以只能在实际设备中测试你的GPS程序

作者:易飞扬

分享到:
评论

相关推荐

    iPhone开发进阶

    ### iPhone开发进阶知识点概述 #### 一、iPhone OS架构详解 **1.1 Cocoa Touch** Cocoa Touch层是iOS应用程序开发的核心,它提供了一系列框架,帮助开发者构建用户界面和处理用户交互。主要包括以下几个方面: - *...

    iPad程序开发教程-电子书

    在iPad程序开发的世界里,iOS平台是至关重要的。本教程主要针对那些想要深入学习如何为iPad设计和构建应用程序的开发者,无论你是初学者还是有一定经验的程序员,都可以从中获益。"iPad程序开发教程"是一本由Wrox...

    iPhone应用开发从入门到精通

    《iPhone应用开发从入门到精通》是一本针对初学者与进阶者的全面指南,旨在帮助读者逐步掌握iOS应用开发的核心技能。这本书深入浅出,采用循序渐进的方式讲解了从基础概念到高级实践的全过程。 在iOS开发领域,...

    深入浅出iPhone/iPad开发(第2版),中文完整扫描版

    总的来说,《深入浅出iPhone/iPad开发(第2版)》涵盖了从基础到进阶的全方位iOS开发知识,无论是初学者还是有经验的开发者,都能从中获益,提升自己的iOS开发技能。通过阅读这本书,你将能够理解并掌握构建高质量...

    ArcGIS API for iOS进阶教程课件

    - **布尔类型与null**:Objective-C中使用YES和NO表示布尔值,nil代表空对象,与C/C++中的NULL不同,nil可调用方法而不导致程序崩溃。 - **异常处理**:通过@try/@catch/@finally语句块进行异常捕捉与处理。 - **...

    Beginning iPhone 4 Development Exploring the iOS code

    《初识iPhone 4开发:探索iOS代码》是一本针对初学者的专业指南,旨在带领读者深入理解iPhone 4应用程序的开发过程,同时涵盖iOS操作系统的核心编程概念。这本书的知识点广泛而深入,涵盖了从基础到进阶的多个层面,...

    Head First iPhone and iPad Development

    《Head First iPhone and iPad Development》是一本面向iOS开发初学者和进阶者的书籍,它以一种幽默而吸引人的方式教授如何开发iPhone和iPad应用。本书不仅覆盖了iOS开发的基础知识,还深入探讨了一些高级主题和技术...

    ArcGIS API for iOS进阶_张宝才

    **ArcGIS API for iOS** 是一款专为iOS设备(包括iPhone、iPad及iPod touch等)设计的原生Objective-C类库,旨在帮助开发者在iOS应用中集成和利用Esri提供的GIS功能。该API支持iOS 3.1.2及以上版本,适用于构建各种...

    iOS6 编程实战(英)

    这本书详细介绍了在iOS 6环境下开发高级应用程序的技术和实践方法,适用于iPhone、iPad以及iPod Touch平台。两位作者利用他们在iOS开发领域的深厚经验,带领读者深入探索并掌握如何“推动iOS编程的极限”。 本书的...

    Titanium学习教程

    移动应用跨平台开发是指使用一套代码库或工具集来同时为多个不同的操作系统(如iOS和Android)创建应用程序的技术。Titanium通过其强大的框架实现了这一点: - **代码重用性高**:开发者只需掌握JavaScript,即可为...

    PhoneGap IOS 端源码

    PhoneGap是一款跨平台的移动应用开发框架,它允许开发者使用HTML、CSS和JavaScript来构建原生的移动应用程序。iOS端的PhoneGap项目是基于Cordova(PhoneGap的开源版本)和Xcode,提供了在iOS设备上运行Web技术的桥梁...

    Ionic 4 Cross Platform Android和IOS App入门

    这使得Ionic组件可以在任何支持Web Components的环境中独立使用,包括非Angular项目。 3. **跨平台开发**: 使用Ionic 4,开发者可以编写一次代码,然后在多个平台上运行,包括Android、iOS和Web。这得益于Cordova或...

Global site tag (gtag.js) - Google Analytics