具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
图1示出了本发明一实施例提供的终端设备定位方法的实现流程,该方法过程详述如下:
在步骤S101中,接收启动全球定位系统信息。
在本实施例中,所述全球定位系统包括但不限于伽利略系统、北斗系统等。其中,所述信息包括但不限于用户发出的启动指令,或者在预设的启动时间产生的触发信息等。
在步骤S102中,根据预存的星历数据获取当前天空相应卫星的信号实现定位。
本实施例在GPS启动前预先存储星历数据,在GPS启动后,根据预存的最新的星历数据快速的锁定所述终端设备当前天空相应的卫星(至少三颗卫星),并获取所述卫星的信号实现定位。其中,所述星历数据包括卫星编号(至少三个)、用于描述卫星位置和速度的参数、卫星运动的轨道信息等,所述卫星编号与描述卫星位置和速度的参数、卫星运动的轨道信息等对于某个卫星存在映射关系。需要说明的是,本实施例中预存的星历数据为终端设备当前位置(一般为离所述终端设备最近的基站的位置)上空的星历数据。
其中,根据星历数据获取当前天空相应卫星的信号实现定位的具体过程可以采用现有技术实现,例如终端设备根据星历数据锁定当前天空相应的卫星,接收所述卫星的信号,解调所述信号,根据所述信号计算该终端设备到卫星的伪距,并将计算得到的伪距传送给位置服务器,位置服务器根据所述伪距,结合其他信息(如差分GPS基准站等信息),计算出终端设备的精确位置,并将所述精确位置发送给所述终端设备。
作为本发明的一优选实施例,所述方法在接收启动全球定位系统信息的步骤之前,还包括:
按预设时间间隔获取星历数据,并存储所获取的星历数据。
在本实施例中,按预设时间间隔获取星历数据,例如每隔1小时获取一次星历数据。在存储所获取的星历数据时,可以存储所有所获取的星历数据或者存储最新的星历数据。其中,存储所有所获取的星历数据的目的将最新的星历数据与历史的星历数据进行比较,方便后续的分析,例如根据星历数据的不同判断终端设备的当前位置(如上海或者北京)。存储最新的星历数据的目的是为了节省终端设备的存储空间。
需要说明的是,本实施例获取的星历数据是终端设备当前位置上空的星历数据。其中,终端设备的位置信息可以采用现有技术获取。例如,移动终端通过基站向AGPS服务器发送获取星历数据的请求,AGPS根据所述基站中记录的经纬度信息确定该移动终端的当前位置,即将该基站的位置作为所述终端设备的当前位置(如上海、北京),将该移动终端当前位置上空的星历数据(如上海地区的星历数据或北京地区的星历数据)发送给终端设备。
本实施例将星历数据按间隔时间获取而不是固定时间获取是因为:如果设定为固定时间,需要时刻的关注当前时间,将当前时间与固定时间进行比较,在当前时间等于固定时间时才获取星历数据。而设定为间隔时间,则不需要关注当前时间,只需要达到设定的间隔时间即获取星历数据。
本发明实施例在终端设备启动GPS定位前,按预设的时间间隔下载星历数据并存储到终端设备中,以使得终端设备在启动GPS定位后,可以根据所存储的最新的星历数据快速的锁定相应的卫星实现定位。本发明实施例与现有技术相比,明显的加快了定位的速度,缩短了定位时间,实现了对用户GPS定位请求的快速响应,极大的提升了用户体验。
图2示出了本发明另一实施例提供的终端设备定位方法的实现流程,该方法过程详述如下:
在步骤S201中,在所述终端设备未处于休眠或待机状态时,判断是否达到预设的时间间隔,若判断结果为“是”,则执行步骤S202,若判断结果为“否”,则继续等待,直到达到所述预设的时间间隔。
在步骤S202中,若达到预设的时间间隔,则获取星历数据,并存储所获取的星历数据。
在步骤S203中,在接收到用户启动终端设备的全球定位系统GPS信息后,根据所存储的最新的星历数据获取当前天空相应卫星的信号实现定位。作为本发明的另一优选实施例,为了节省数据流量,避免应用程序耗电,所述方法还包括:
在所述终端设备处于休眠或待机状态时,停止获取星历数据(即关闭终端设备的星历数据获取应用程序),并记录上一次星历数据获取的时间。
作为本发明的另一优选实施例,所述方法还包括:
当所述终端设备从所述休眠或待机状态启动时,获取第一时间间隔,所述第一时间间隔为所述终端设备当前启动时间与所述上一次星历数据获取时间之差,并判断所述第一时间间隔是否大于或者等于所述预设时间间隔;
若是,则获取星历数据;
若否,则根据所述第一时间间隔修正下一次星历数据获取的时间,所述下一次星历数据获取的时间为所述预设时间间隔与所述第一时间间隔之差;
在本实施例中,为了保证星历数据及时的更新,需将所述终端设备休眠或待机状态的时间计入所述间隔时间。
举例说明上述过程,假设设置时间间隔为60分钟,在终端设备进入休眠或待机状态前,上一次星历数据获取的时间为7:00,7:20时终端设备进入休眠或待机状态,且休眠或待机的时间为30分钟,30分钟后终端设备启动,因为需要计入终端设备休眠或待机状态的时间,所以所述第一时间间隔为(7:20-7:00)+30=50分钟,将下一次星历数据获取的时间修正为(60-50)=10分钟后(初始的下一次星历数据获取的时间是60分钟后)。
作为本发明的另一优选实施例,所述若达到预设的时间间隔,获取星历数据具体还包括:
判断当前星历数据获取时间是否处于特定的时间范围内;
若否,则获取星历数据;
若是,判断该特定时间范围内是否已设置为不获取星历数据;
若否,则获取星历数据;
若是,获取第二时间间隔,并判断所述第二时间间隔是否大于或者等于所述预设的时间间隔,所述第二时间间隔为所述特定的时间范围的结束时刻与上一次星历数据获取的时间之差;
若是,则在所述特定的时间范围的结束时刻开始获取星历数据。
其中,所述特定的时间范围可根据用户实际情况设定,例如00:00~06:00。
举例说明上述过程:
假设星历数据获取的时间间隔为60分钟,特定的时间范围为00:00~06:00,在系统时间为00:00的时候,正好距离上一次星历数据获取的时间(23:00)为60分钟,根据预设的时间间隔,终端设备应该在00:00的时候获取星历数据。然而,由于预先设定的特定的时间范围为00:00~06:00(该特定的时间范围是根据普通人的作息习惯设定的,根据相关问卷调查发现在00:00~06:00用户使用GPS定位的概率较小),所以还需要判断该特定时间范围内用户是否已设置为不获取星历数据,若是,则不获取星历数据,等到06:00再开始获取(因为第二时间间隔(06:00-23:00=420分钟)大于预设的时间间隔,否则直接获取星历数据。
优选的是,本实施例还包括:
在所述第二时间间隔小于所述预设的时间间隔时,根据所述第二时间间隔修正下一次星历数据获取的时间,修正后的下一次星历数据获取的时间为所述预设时间间隔与所述第二时间间隔之差;所述第二时间间隔为所述特定的时间范围的结束时刻与上一次星历数据获取的时间之差。
例如,假设星历数据获取的时间间隔为60分钟,上一次星历数据获取的时间为23:50,特定的时间范围为00:00~00:30,在系统时间为00:30的时候,获取第二时间间隔,所述第二时间间隔为(00:00-23:50)+30=40分钟小于预设的时间间隔,根据所述第二时间间隔修正下一次星历数据获取的时间,下一次星历数据获取的时间为预设时间间隔60分钟与所述第二时间间隔之差,即60-40=20分钟后(初始的下一次星历数据获取的时间是60分钟后),在00:50时开始获取星历数据。
需要说明的是,当所述特定的时间范围大于或者等于所述预设的时间间隔,且所述特定时间范围内已设置为不获取星历数据,则在所述特定的时间范围的结束时刻开始获取星历数据。
为了增强本发明的实用性,节省数据流量,避免星历数据获取应用程序不必要的耗电,本发明实施例从多个方面(如终端设备休眠或者待机、特定的时间范围等)对星历数据获取的时间进行限制或者修正,使得在节约资源的同时达到及时更新星历数据的目的。
图3示出了本发明另一实施例提供的终端设备定位装置的组成结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该终端设备定位装置可以是运行于各终端设备(例如手机、IPAD等)内的软件单元、硬件单元或者软硬件相结合的单元。
该终端设备定位装置3包括信息接收单元31以及定位单元33,其具体功能如下:
信息接收单元31,用于接收启动全球定位系统信息;
定位单元32,用于在所述信息接收单元31接收到启动全球定位系统信息后,根据预存的星历数据获取当前天空相应卫星的信号实现定位。
进一步的,所述装置还包括:
星历数据获取单元33,用于按预设时间间隔获取星历数据;
存储单元34,用于存储所述星历数据获取单元33获取的星历数据。
进一步的,所述星历数据获取单元33包括:
第一判断模块331,用于在所述终端设备未处于休眠或待机状态时,判断是否达到预设的时间间隔;
获取模块332,用于在所述第一判断模块331判断结果为是时,获取星历数据。
进一步的,所述星历数据获取单元33还包括:
停止获取模块333,用于在所述终端设备处于休眠或待机状态时,停止获取星历数据,并记录上一次星历数据获取的时间;
第一修正模块334,用于用于当所述终端设备从所述休眠或待机状态启动时,获取第一时间间隔,并判断所述第一时间间隔是否大于或者等于所述预设时间间隔,若是,则通过所述获取模块获取星历数据,否则根据所述第一时间间隔修正下一次星历数据获取的时间,修正后的下一次星历数据获取的时间为所述预设时间间隔与所述第一时间间隔之差,所述第一时间间隔为所述终端设备当前启动时间与所述上一次星历数据获取时间之差。
进一步的,所述获取模块332还包括:
第一处理模块3321,用于在达到预设的时间间隔时,判断当前星历数据获取时间是否处于特定的时间范围内,若否,则获取星历数据;
第二处理模块3322,用于当当前星历数据获取时间处于特定的时间范围内,判断所述特定时间范围内是否已设置为不获取星历数据,若否,则获取星历数据;
第三处理模块3323,用于当所述特定时间范围内已设置为不获取星历数据时,获取第二时间间隔,并判断所述第二时间间隔是否大于或者等于所述预设的时间间隔,若是,则在所述特定的时间范围的结束时刻开始获取星历数据,所述第二时间间隔为所述特定的时间范围的结束时刻与上一次星历数据获取的时间之差。
第二修正模块3324,用于在所述第三处理模块中所述第二时间间隔小于所述预设的时间间隔时,根据所述第二时间间隔修正下一次星历数据获取的时间,修正后的下一次星历数据获取的时间为所述预设时间间隔与所述第二时间间隔之差。
本实施例提供的终端设备定位装置可以使用在前述对应的终端设备定位方法中,详情参见上述终端设备定位方法实施例一和二的相关描述,在此不再赘述。
本领域普通技术人员可以理解为上述实施例三所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元和模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
图4示出了本发明另一实施例提供的终端设备定位装置的组成结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该终端设备定位装置可以是运行于各终端设备(例如手机、IPAD等)内的硬件单元。
该终端设备定位装置4包括接收器41以及处理器42:
所述接收器41用于接收启动全球定位系统信息;
所述处理器42用于在所述接收器41接收到启动全球定位系统信息后,根据预存的星历数据获取当前天空相应卫星的信号实现定位。
进一步的是,所述处理器42还用于按预设时间间隔获取星历数据,并将所获取的星历数据发送至存储器存储43;
所述装置4还包括:
存储器43,用于存储所述处理器42按预设时间间隔获取的星历数据。
进一步的,所述处理器42还用于按预设时间间隔获取星历数据,具体为:判断所述终端设备是否处于休眠或待机状态,在所述终端设备未处于休眠或待机状态时,判断是否达到预设的时间间隔,在达到预设的时间间隔时,获取星历数据。
进一步的,所述处理器42还用于判断所述终端设备是否处于休眠或待机状态,具体为:在所述终端设备处于休眠或待机状态时,停止获取星历数据,记录上一次星历数据获取的时间,并在所述终端设备从所述休眠或待机状态启动时,获取第一时间间隔,判断所述第一时间间隔是否大于或者等于所述预设时间间隔,若是,则获取星历数据;若否,则根据所述第一时间间隔修正下一次星历数据获取的时间,修正后的下一次星历数据获取的时间为所述预设时间间隔与所述第一时间间隔之差;所述第一时间间隔为所述终端设备当前启动时间与所述上一次星历数据获取时间之差。
进一步的,所述处理器42还用于判断是否达到预设的时间间隔,具体为:在达到预设的时间间隔时,判断当前星历数据获取时间是否处于特定的时间范围内,若否,则获取星历数据。
进一步的,所述处理器42还用于判断当前星历数据获取时间是否处于特定的时间范围内,具体为:当当前星历数据获取时间处于特定的时间范围内时,判断该特定时间范围内是否已设置为不获取星历数据,若否,则获取星历数据。
进一步的,所述处理器42还用于判断该特定时间范围内是否已设置为不获取星历数据,具体为:当所述特定时间范围内已设置为不获取星历数据时,获取第二时间间隔,当所述第二时间间隔大于或者等于所述预设的时间间隔时,则在所述特定的时间范围的结束时刻开始获取星历数据,所述第二时间间隔为所述特定的时间范围的结束时刻与上一次星历数据获取的时间之差。
进一步的,所述处理器42还用于判断该特定时间范围内是否已设置为不获取星历数据,具体为,当所述特定时间范围内已设置为不获取星历数据,获取第二时间间隔,当所述第二时间间隔小于所述预设的时间间隔时,根据所述第二时间间隔修正下一次星历数据获取的时间,修正后的下一次星历数据获取的时间为所述预设时间间隔与所述第二时间间隔之差;所述第二时间间隔为所述特定的时间范围的结束时刻与上一次星历数据获取的时间之差。
本实施例提供的终端设备定位装置可以使用在前述对应的终端设备定位方法中,详情参见上述终端设备定位方法实施例一和二的相关描述,在此不再赘述。
综上所述,本发明实施例在终端设备启动GPS定位前预先存储有星历数据,以使得终端设备在启动GPS定位后,可以根据所存储的最新的星历数据快速的锁定相应的卫星实现快速定位。本发明实施例与现有技术相比,明显的加快了定位的速度,缩短了定位时间,实现了对用户GPS定位请求的快速响应,极大的提升了用户体验。而且,为了增强本发明的实用性,节省数据流量,避免星历数据获取应用程序不必要的耗电,本发明实施例从多个方面(如终端设备休眠或者待机、特定的时间范围等)对星历数据获取的时间进行限制或者修正,使得在节约资源的同时达到及时更新星历数据的目的。
本领域普通技术人员还可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,包括ROM/RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。