第1章Android位置服务简介
本章内容:
概述在Android中如何提供位置信息
简单介绍GPS
讨论在Android中使用A-GPS的原因
概述网络位置提供者
在移动开发领域,位置信息正变得越来越重要。之前和定位无关的应用利用位置信息提供了更丰富的用户体验。将最新的位置信息和简单的Web搜索引擎结合,就能让Android设备提供以前不可能实现的一系列功能。能够轻松地为应用检索和提供位置数据已经成为如今移动平台的一大主要特色。Android通过它的位置服务提供了这个功能。
Android的位置服务提供访问设备定位设施的接口。位置信息可以广泛用于多种功能,并且可以使设备和运行其上的软件对周边有更好的了解。
1.1 用于确定位置的方法
Android使用不同的方法为应用提供位置信息。在Android中,这些设施称作位置提供者(location provider),每一个设施都有自己特有的优点和缺点。另外,因为每个位置提供者的独特性,要在不同的情况下以不同的方式使用它们。
下面的小节会对获取位置的方法的工作原理给出更高层次的解释。虽然应用几乎无法控制提供者的工作过程,但是它可以决定使用哪个位置提供者。了解每个提供者如何工作,对于理解它的局限性和特点大有帮助。
1.1.1 GPS提供者
Global Positioning System(全球定位系统,GPS)使用一套环绕地球的卫星系统来帮助接收器(在这里就是一部Android手机)确定它的位置。术语GPS指的是整个GPS系统,包括了卫星、接收器以及用来监控和调整它的控制站。脱离这套系统,手机中的接收器就是毫无用处的。
1. GPS的工作原理
一般情况下,GPS接收器使用环绕地球的GPS卫星提供的信息来计算当前所处的位置。GPS系统包括27个围绕地球运行的卫星,它们会将信息传输到潜在的接收器。每一个卫星都遵循指定的轨道运动,保证至少在地球的任何位置、任何时间都有4个卫星是“可见”的。使用GPS来定位,必须确保“视线范围”内至少有4个卫星。图1-1展示了GPS卫星星座。
来源: http://gps.gov/multimedia/images
图1-1 GPS卫星星座
星座中的每个GPS卫星都会持续地发送自己当前的位置信息(ephemeris data,星历数据)和历书数据(almanac data)。历书数据包含了星座中每个卫星的数据,其中包括轨道数据以及系统整体状态信息。换一种方式说,星历数据是单一卫星的数据,而历书数据是所有卫星的数据。每个卫星会同时发送这两种信息。虽然星历数据和历书数据都会为给定的卫星提供位置数据,但是星历数据保证了位置计算的准确度。
为了计算位置,GPS接收器必须能确定它和多个卫星之间的距离。通过星历数据可以做到这一点。从卫星传回的数据里包括位置数据以及传输开始的时间。每个GPS卫星都有一个非常精确的计时机制,使之和其他的卫星在时间上保持同步。为了精确地计算位置,GPS卫星和GPS接收器的时钟必须高度同步。即使是最微小的时间差,也可能会导致位置计算产生较大的误差。
通过传输开始时间,GPS接收器可以计算传输过程所花费的时间(接收器能够获取传输结束时间)。这个计算是建立在无线电波以真空中的光速来传输数据这一假设之上的(并不总是如此)。通过开始时间、结束时间以及恒定的光速,GPS接收器可以计算出自身和卫星之间的距离。
……
展开