`

在程序中使用GPS定位

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

1.添加 CoreLocation.framework。
2.生成 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
kCLLocationAccuracyThreeKilometers 3km

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

分享到:
评论

相关推荐

    GPS定位功能。GPS定位例子。

    标题中的“GPS定位功能”指的是全球定位系统(Global Positioning System)在移动设备上的应用,如智能手机。GPS技术通过接收多个卫星的信号来确定设备的精确地理位置,包括经度、纬度和海拔高度。在描述中提到的...

    GPS定位精度检测程序

    通过以上分析,我们可以看到GPS定位精度检测程序在提高GPS系统性能中的重要作用。它不仅可以帮助我们了解设备的实际表现,还能指导我们优化使用环境和设备配置,从而提升定位的准确性和可靠性。在日常使用或专业应用...

    matlab_gps 定位算法仿真程序 导航定位解算原理仿真

    下面我们将深入探讨GPS定位算法的原理,以及如何在MATLAB中进行仿真。 首先,GPS定位的基本原理基于多普勒效应和三角定位。卫星发射的信号包含了其精确的时空坐标,接收器接收到这些信号后,通过测量信号传播时间来...

    GPS.zip_GPS_GPS 定位_GPS 定位程序_gps定位_gps定位matlab

    在本程序中,"m模拟GPS定位"是核心文件,可能包含了以下关键知识点: 1. **信号仿真**:模拟卫星信号的传播,包括信号的发射、在大气中的衰减、多路径效应等,这些都是实际定位中可能遇到的情况。 2. **多普勒效应...

    gps定位程序

    gps定位程序 详细

    GPS单点定位.rar_GPS单点定位程序_gps定位_matlab 单点定位_单点定位_单点定位matlab

    GPS单点定位是一种基于全球定位系统(GPS)的定位技术,它通过接收至少一颗GPS卫星发射的信号来计算用户位置。在本程序集中,我们关注的是...对于GPS定位感兴趣的科研人员、学生或工程师来说,这是一个很好的学习资源。

    Android获取GPS定位示例程序

    在Android平台上,获取GPS定位是移动应用开发中的基础功能,尤其对于那些依赖地理位置信息的应用,如导航、社交、天气预报等。本示例程序"LocationDemo"是专门为开发者设计的,用于展示如何在Android Studio环境下...

    python实现GPS定位.py

    此程序为在jetson nano中实现GPS定位

    GPS ROS驱动程序,python,读取GPS定位信息

    在给定的“GPS ROS驱动程序,python,读取GPS定位信息”主题中,我们将深入探讨如何使用Python编写ROS驱动程序来解析NMEA(Navigation Satellite Timing and Ranging/Automatic Positioning Interference)字符串,...

    GPS定位数据的提取

    在 GPS 定位数据的提取系统中,我们需要使用串口通信来与 GPS 设备进行交互。为了实现同步 I/O 方式的串口通信,我们需要设计一个特殊的程序结构,该结构包括三个部分,每个部分都有一个函数完成其对应的功能。 ...

    基于51单片机的GPS定位程序

    标题中的“基于51单片机的GPS定位程序”指的是使用经典的51系列单片机进行全球定位系统(GPS)的开发项目。51单片机是微控制器领域中的一个基础型号,以其简单易用、资源适中而广泛应用于各种嵌入式系统中。在本项目...

    Android GPS定位简单 DEMO

    一,在很多提供定位服务的应用程序中,不仅需要获取当前的位置信息,还需要监视位置的变化,在位置改变时调用特定的处理方法 ,其中LocationManager提供了一种便捷、高效的位置监视方法requestLocationUpdates(),...

    GPS单点定位程序

    4. 实时性考虑:GPS定位需要快速处理大量数据,因此程序需要高效且实时性强。 5. 验证与测试:通过模拟数据或实地测试,验证程序的准确性及稳定性。 总结,GPS单点定位程序涉及了信号处理、数学建模、误差修正等多...

    Android程序_GPS定位器

    在Android平台上,开发一款GPS定位器程序涉及到许多关键知识点,这些知识点构成了Android应用程序与GPS硬件交互的基础。首先,我们来详细探讨一下这些重要的技术点。 1. **AndroidManifest.xml配置**: 在Android...

    GPS定位系统服务器端程序(GPSBD卫星定位监控系统Simple)

    《GPS定位系统服务器端程序详解——GPSBD卫星定位监控系统Simple》 GPS定位技术作为现代科技的重要组成部分,广泛应用于交通管理、物流跟踪、个人安全等多个领域。本文将深入解析名为“GPSBD卫星定位监控系统Simple...

    基于PHP的GPS定位

    在IT行业中,基于PHP的GPS定位系统是一种将全球定位系统(GPS)数据与Web应用程序结合的技术,用于跟踪和展示地理位置信息。在这个系统中,PHP作为后端编程语言处理数据,MySQL作为数据库存储位置信息,JavaScript...

    C51程序 带电路图 GPS定位导航系

    C51程序、电路图和GPS定位导航系统是嵌入式开发中的重要组成部分,它们在电子设备、汽车导航、物联网应用等领域中有着广泛的应用。在这个压缩包中,我们可能找到与这些主题相关的详细资料,包括C51编程的源代码、...

    GPS.rar_GPS数据_Java中GPS定位_gps ja_gps定位_java写gps定位

    "gps定位_java写gps定位"进一步强调了这是使用Java编程语言来编写GPS定位程序。 描述部分提到,这是一个已经编译过的Java程序,可以立即运行。它利用了某种算法来计算"图中求源点到目的顶点最短距离",这可能指的是...

    gps定位从串口返回gps数据程序代码

    在IT行业中,GPS(全球定位系统)定位是嵌入式系统和物联网应用中常见的功能,它主要用于获取设备的地理位置信息。...对于想要开发涉及GPS定位功能的嵌入式系统或物联网设备的开发者来说,这是一个宝贵的参考资料。

    移动手机GPS定位

    在“Geolocate”这个文件中,可能包含了使用Flex开发的GPS定位功能的源代码,包括与GPS接收器的交互、A-GPS的实现、网络辅助定位的逻辑、位置信息的处理以及可能的地图API集成等。通过深入研究这些源代码,我们可以...

Global site tag (gtag.js) - Google Analytics