`

iphone定位 基本知识

    博客分类:
  • ios
 
阅读更多

找到一个关于iphone定位的的资料,收藏一下

其实使用iphone的定位系统开发软件是很简单的一件事,下面我们就来认识一下iphone的定位系统的使用。 
1.Getting the User’s Current Location 
获取用户当前位置。 
获取位置的方式有三种:GPS, cell tower triangulation(蜂窝站点), 和 
Wi-Fi Positioning Service (WPS).其中GPS是最精确的定位方式,但是在第一代iphone上没有。GPS是通过读取很多卫星微波信号来确定当前位置的。蜂窝站点通过 iphone周围的站点计算出来的,在蜂窝站点密集的地方使用这种技术可以达到一个准确的值,比如在城市但在蜂窝站点不密集的地方效果就没那么好了。最后 一个WPS使用的是连接到Wi-Fi网络的IP地址来确定位置,这将会有较大的误差。这三种方式都会消耗大量的电。怎么才能即实现定位功能又省电呢?下面 的方法就可以解决:当使用Core Location时,可以选择精确度,谨慎的选择你所需要的准确度,可以帮助你省很多电。Core Location使用的技术隐藏在应用程序中。我们无需选择使用GPS、蜂窝站点技术还是WPS,我们只要告诉它我们需要的准确度它会自己决定选什么技术 来满足我们的需求。 
2.The Location Manager 
Core Location的接口是很容易使用的。主要用到的类是CLLocationManager,就是通常说的Location Manager。为了使用Core Location我们需要创建Location Manager的实体: 
CLLocationManager *locationManager = [[CLLocationManager alloc] init]; 
这 样我们就创建了 Location Manager的实体,但是我们还没有开始定位。我们需要指派一个代理给Location Manager。当定位信息改变时Location Manager将调用代理方法。定位的过程会花一段时间平均几秒钟。代理方法必须遵循CLLocationManagerDelegate协议。 
3.Setting the Desired Accuracy 
设置代理后,你还要设置需要的准确度。就像我们刚刚说的精确度越高越耗电。如果你只是要是应用程序确定是哪个国家或是哪个州那么就不要设置很高的精确度。记住一点有时候你并不能得到你需要的精确度。 
下面说一个设置代理和设置精确度的例子: 
locationManager.delegate = self; 
locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
精 确度使用的是一个double类型的常量。单位是米,所以如果你设置desiredAccuracy=10那么精确度就是10米,这就告诉 Location Manager尽可能达到10米的精确度。还可以设置为其他常量:kCLLocationAccuracyBest, 
you can also use kCLLocationAccuracyNearestTenMeters, kCLLocationAccuracy 
HundredMeters, kCLLocationAccuracyKilometer, and kCLLocationAccuracyThree 
Kilometers. 
4.Setting the Distance Filter 
默认情况是这样的,每当位置改变时Location Manager就调用一次代理。通过设置distance filter可以实现当位置改变超出一定范围时Location Manager才调用相应的代理方法。这样可以达到省电的目的。 
例如:locationManager.distanceFilter = 1000.0f; 
如果设置默认值: 
locationManager.distanceFilter = kCLDistanceFilterNone; 
5.Starting the Location Manager 
开始定位 
当你转备好为定位消耗电池时我们可以调用 
[locationManager startUpdatingLocation]; 
来告诉 Location Manager开始定位 
6.Using the Location Manager Wisely 
如果你只需要确定当前位置而不需要进一步定位,当Location Manager查询到当前位置时需要通知代理停止定位。 
停止方法: [locationManager stopUpdatingLocation]; 
7.The Location Manager Delegate 
Location Manager必须遵守CLLocationManagerDelegate协议,CLLocationManagerDelegate协议定义了两个方 法,并且这两个方法都是可选的。其中一个方法是当确定当前位置或是位置信息改变时调用。另一个方法是当遇到错误信息时调用 
8.Getting Location Updates 
当Location Manager想通知它的代理当前位置时,它会调用 
locationManager:didUpdateToLocation:fromLocation: 方法。 
这个方法有3个参数第一个参数Location Manager。第二个参数是一个CLLocation对象用来确定当前位置,第三个是CLLocation 对象用来确定最近一次更新是的位置。该方法调用时,先前的location对象会被置空。 
6.Getting Latitude and Longitude Using CLLocation 
经纬度 
位置信息是通过使用CLLocation类的实例从Location Manager那里得到的。这个类有5各属性。latitude和longitude被封装在coordinate属性中。 
获取方式如下: 
CLLocationDegrees latitude = theLocation.coordinate.latitude; 
CLLocationDegrees longitude = theLocation.coordinate.longitude; 
CLLocation对象还可以告诉你精确度。 
horizontalAccuracy属性描述调整的中心点。horizontalAccuracy值越大越不精确。 
CLLocation 还有一个叫altitude的属性用来表示海拔 
CLLocationDistance altitude = theLocation.altitude; 
每一个CLLocation对象都有一个叫verticalAccuracy的属性来判断精确度。海拔数值可能会有verticalAccuracy大小的误差,当verticalAccuracy为负值时,那是Core Location在通知你不能获取海拔高度。 
CLLocation的另一个属性timestamp用来告诉Location Manager是什么时候定位的。CLLocation还有一个实例方法来告诉你的两个CLLocation对象之间的距离。这个方法叫:getDistanceFrom: 
它是这样工作的: 
CLLocationDistance distance = [fromLocation getDistanceFrom:toLocation]; 
返回两个时间段内的距离,有时候它是不考虑海拔的,所以要自己计算距离。 
7.Error Notifications 
如果Core Location不能指定你当前的位置,它将调用。CLLocation的第二个代理方法:locationManager:didFailWithError:,最常见的是用户取消使用定位信息。

分享到:
评论

相关推荐

    iphone通过gps获取经纬度的

    本示例将深入探讨如何通过GPS获取iPhone的经纬度坐标,以及相关的知识点。 首先,我们需要导入Core Location框架,它是苹果提供的用于地理位置服务的核心框架。在Swift中,我们可以在代码顶部添加以下代码来引入: ...

    Beginning iPhone Development:Exploring the iPhone SDK

    ### iPhone开发基础教程知识点概述 #### 一、引言 《iPhone开发基础教程》是一本专为初学者设计的指南,旨在帮助读者深入了解iPhone应用程序开发的基础知识和技术要点。本书通过全面而系统的讲解,覆盖了从环境搭建...

    iphone5原理图

    这些细节反映了苹果在设计iPhone5时对精度和性能的追求,同时也体现了对知识产权的重视,表明这些设计是苹果公司的专有财产。 综上所述,通过深入解析iPhone5的原理图及其相关文档,我们不仅能够了解到这款标志性...

    iphone7原厂线路图纸和位图

    - 在接触任何电子设备的电路图和进行维修操作之前,必须确保了解基本的电子安全知识,避免触电或损坏设备。同时,未经授权的维修可能会导致保修失效。 6. **知识产权**: - 需要注意的是,原厂图纸通常受到版权...

    iPhone6s点位图+电路原理图

    《iPhone6s点位图与电路原理图解析》 在电子设备维修领域,尤其是智能手机维修,了解设备的内部构造及电路原理是至关...无论是专业维修人员还是业余爱好者,都应该掌握这些基本知识,以提高问题解决的效率和成功率。

    最好的iPhone应用(第2版)--Best.iPhone.Apps.2nd.Edition

    ### 最好的iPhone应用(第2版):关键知识点解析 #### 一、书籍基本信息与作者简介 本书《最好的iPhone应用(第2版)》由J.D. Biersdorfer编写,出版时间为2010年9月。作者J.D. Biersdorfer是一位资深的技术作家和...

    cocos2d-iphone-2.0.tar.gz

    9. **User Interface (UI)**:Cocos2d-iPhone提供了基本的UI元素,如按钮、滑块、文本框等,便于构建用户界面。 10. **Scripting Support**:虽然主要是Objective-C,但Cocos2d-iPhone还支持JavaScript和Python等...

    beginning iphone 4 development

    《初识iPhone 4开发》是一本面向新手的iOS应用开发指南,主要针对的是使用iPhone 4设备进行软件开发的基础知识。这本书详细介绍了如何利用iOS软件开发工具包(SDK)来构建应用程序,涵盖了从安装环境到发布应用的全...

    cocos2d iphone 中文开发资料大全

    1. **基本概念**:了解Cocos2d-iPhone的基本架构,包括Scene(场景)、Layer(层)、Sprite(精灵)等基本元素,以及它们之间的关系和交互方式。 2. **渲染系统**:Cocos2d-iPhone使用OpenGL ES进行渲染,学习如何...

    IPHONE4S使用指南

    iPhone4S使用指南涵盖了该款设备的基础操作、配置、特色功能以及与iTunes软件的交互等重要知识点。接下来将详细阐述这些内容。 ### iPhone4S基础概览 iPhone4S作为苹果公司推出的一款智能手机,拥有精致的外观设计...

    iphone5点位图pcb文件

    在深入分析iPhone5点位图的过程中,我们还能学习到关于电磁兼容性(EMC)、信号完整性(SI)和电源完整性(PI)的知识。这些都是PCB设计中的重要考虑因素,确保设备不会受到电磁干扰,信号传输准确无误,电源供应...

    iphone创意开发入门与实践总结

    - **iPhone模拟器**:在没有实际设备的情况下,开发者可以利用iPhone模拟器在Macintosh电脑上模拟基本的iPhone OS环境,这对于学习和初步测试非常有用。 #### 五、开发iPhone应用的关键步骤 1. **搭建开发环境**:...

    最新 iPhone 应用程序开发全教程.pdf

    1. **欢迎到“丛林”**:首先介绍了 iPhone 开发的基本概念和技术栈,包括 Xcode 的使用方法、Objective-C 或 Swift 语言的基础知识、iOS SDK 的结构等。 2. **处理基本交互**:重点在于如何处理用户输入,如按钮...

    shot by iphone水印文件

    在IT行业中,图像处理是一...总的来说,"Shot by iPhone"水印资源的使用涵盖了图像处理的基本操作、编程实现以及版权意识等多个方面。无论是设计师还是开发者,了解这些知识都将有助于提高工作效率并确保工作的合规性。

    iphone5 中文维修图纸 电路图

    在电子设备维修领域,了解设备内部的电路结构是至关重要的,特别是...同时,由于电子设备内部结构复杂,不建议没有专业知识的用户自行尝试大范围的维修,以免引起更严重的问题。如有疑问,最好寻求专业技术人员的帮助。

    Building iPhone and iPad Electronic Projects

    1. 构建iPhone和iPad电子项目的基本概念:这本书的标题《Building iPhone and iPad Electronic Projects》揭示了内容的主要方向,即教授如何在iPhone和iPad上构建电子项目。这可能涉及到硬件接口,软件编程,以及...

    iphoneSE维修原理图PCB位置图(PDF格式)

    此外,对于初学者,建议先从理论学习入手,理解基本的电子电路知识,再逐步尝试实操,以降低损坏设备的风险。 总的来说,这份iPhone SE维修原理图和PCB位置图是手机维修领域的宝贵参考资料,无论你是想要提高个人...

Global site tag (gtag.js) - Google Analytics