一种地理位置数据的获取方法
技术领域
本发明涉及获取方法技术领域,主要适用于地理位置数据的获取方法。
背景技术
由于全球定位系统GPS技术所具有的全天候、高精度和自动测量的特点,作为先进的测量手段和新的生产力,它已在各个领域得到了广泛应用。目前,大多数Android系统终端都支持基于GPS的实时定位功能,但是,众所周知,实现GPS的实时定位需要经过环绕地球的4颗卫星接收机获得距离数据,形成4个方程式后再进行求解,从而得到观测点的经纬度和高程。但是由于这期间有一定的时间跨度,因而地面终端获得的定位信息也会有一定的延时,并且这种延时往往并不为终端用户所知,所以在实际应用中,当终端移动了一段距离后,或是在重新打开定位服务时,它再通过GPS模块获得的信息往往是先前的历史数据,而非最新实时的地理位置信息,这就给实际的应用带来了不便。
发明内容
本发明所要解决的技术问题是提供一种地理位置数据的获取方法,它能够明确无误地获取最新实时地理位置信息。
为解决上述技术问题,本发明提供了一种地理位置数据的获取方法包括:
获取位置管理服务;
通过GPS位置服务设置GPS取坐标点的监听器为自定义实现GPS卫星取坐标值监听器;通过NET位置服务设置NET取坐标点的监听器为自定义实现NET基站取坐标值监听器;
任意位置服务获得的最新坐标点会通过相应的自定义监听器将此服务位置状态设为最新可取状态;
获取位置信息;
若GPS卫星取位置值服务是为最新可取状态,则取卫星定位信息;
否则就取NET基站定位信息;
若当前都没有最新定位信息,就重新再获取位置信息。
进一步的,当获取到位置信息后,通过HTTP短连接的方式基于3G网络向后台定位服务器发送位置信息。
进一步的,通过Android系统服务中的LOCATION_SERVICE来获取位置管理服务。
进一步的,所述获取位置管理服务包括:对位置管理服务设定其当前操作服务为GPS服务并设定其更新最新数据的最大距离差异与时间差,若得到的位置信息条件符合设定的最大距离差异与时间差,则将此位置信息更新为GPS最新位置信息;对位置管理服务设定其当前操作服务为NET服务并设定其更新最新数据的最大距离差异与时间差,若得到的位置信息条件符合设定的最大距离差异与时间差,则将此位置信息更新为NET最新位置信息。
进一步的,所述获取位置信息包括:
如果GPS卫星取位置值服务是最新可取状态,就取卫星定位信息并将此服务状态置为初始不可取状态,等待下次新的定位信息来后再由自定义GPS取坐标点的监听器更新为可取状态,并由httpclient发送给后台定位服务器;
如NET基站取位置值服务是最新可取状态,就取基站定位信息并将此服务状态置为初始不可取状态,等待下次新的定位信息来后再由自定义NET取坐标点的监听器更新为可取状态,并由httpclient发送给后台定位服务器;
如果没有最新定位信息,就重新再获取位置信息。
进一步的,在获取位置信息后,判断是否停止获取位置信息;
若不停止获取位置信息,则继续获取位置信息;
若停止获取位置信息,则停止位置管理服务。
本发明的有益效果在于:
本发明可同时基于GPS_PROVIDE卫星定位服务与NETWORK_PROVIDER基站定位服务来获取定位信息,能为定位应用返回实时有效的定位信息,避免返回在需要定位信息时取得的是其未及更新的历史数据。此技术可满足任何基于Android平台的手机实现实时获取有效定位信息,具备自动处理获取最新有效定位信息的功能。
附图说明
图1为本发明实施例提供的地理位置数据的获取方法的流程图。
具体实施方式
为进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的地理位置数据的获取方法的具体实施方式及原理进行详细说明。
本发明提供的地理位置数据的获取方法包括:
通过Android系统服务中的LOCATION_SERVICE来获取位置管理服务;具体为:对位置管理服务设定其当前操作服务为GPS服务并设定其更新最新数据的最大距离差异与时间差,若得到的位置信息条件符合设定的最大距离差异与时间差,则将此位置信息更新为GPS最新位置信息;对位置管理服务设定其当前操作服务为NET服务并设定其更新最新数据的最大距离差异与时间差,若得到的位置信息条件符合设定的最大距离差异与时间差,则将此位置信息更新为NET最新位置信息。
通过GPS位置服务设置GPS取坐标点的监听器为自定义实现GPS卫星取坐标值监听器;并通过NET位置服务设置NET取坐标点的监听器为自定义实现NET基站取坐标值监听器;
任意位置服务获得的最新坐标点会通过相应的自定义监听器将此服务位置状态设为最新可取状态;具体的,当有新的位置信息来时,自定义监听器将此时的服务位置状态标志为最新可取状态;若此位置信息被取用,自定义监听器将此时的服务位置状态置为非最新可取状态。
获取位置信息;
若GPS卫星取位置值服务是为最新可取状态,则取卫星定位信息;
否则就取NET基站定位信息;
若当前都没有最新定位信息,就重新再获取位置信息。具体的,如果GPS卫星取位置值服务是为最新可取状态,就取卫星定位信息并将此服务状态置为初始不可取状态,等待下次新的定位信息来后再由自定义GPS取坐标点的监听器更新为可取状态,并由httpclient基于3G网络发送给后台定位服务器;后台定位服务器将此位置信息为标注点在地图上显示出相应的地图参照位置。
如NET基站取位置值服务是为最新可取状态,就取基站定位信息并将此服务状态置为初始不可取状态,等待下次新的定位信息来后再由自定义NET取坐标点的监听器更新为可取状态,并由httpclient基于3G网络发送给后台定位服务器;后台定位服务器将此位置信息为标注点在地图上显示出相应的地图参照位置。
如果没有最新定位信息,就重新再获取位置信息。
优选的,在获取到位置信息后,判断是否停止获取位置信息;
若不停止获取位置信息,则继续获取位置信息;
若停止获取位置信息,则停止位置管理服务。
由图1可知,通过本发明提供的地理位置数据的获取方法实现Android手机的地理位置数据的获取,首先通过Android系统服务中的LOCATION_SERVICE来获取位置管理服务,再通过GPS位置服务设置GPS取坐标点的监听器为自定义实现GPS卫星取坐标值监听器;并通过NET位置服务设置NET取坐标点的监听器为自定义实现NET基站取坐标值监听器;任意位置服务获得的最新坐标点会通过相应的自定义监听器将此服务位置状态设为最新可取状态;接着启动定时器开始获取位置信息;若GPS卫星取位置值服务是为最新可取状态,则取卫星定位信息并将此服务状态置为初始不可取状态,等待下次新的定位信息来后再由自定义GPS取坐标点的监听器更新为可取状态,并由httpclient基于3G网络发送给后台定位服务器;后台定位服务器将此位置信息为标注点在地图上显示出相应的地图参照位置。否则就取NET基站定位信息并将此服务状态置为初始不可取状态,等待下次新的定位信息来后再由自定义GPS取坐标点的监听器更新为可取状态,并由httpclient基于3G网络发送给后台定位服务器;后台定位服务器将此位置信息为标注点在地图上显示出相应的地图参照位置。若当前都没有最新定位信息,就重新再获取位置信息。接下来判断是否停止获取位置信息;若继续获取位置信息,则继续获取位置信息,并相继判断GPS卫星取位置值服务、NET基站取位置值服务是否为最新可取状态,并将得到的最新位置数据由httpclient基于3G网络发送给后台定位服务器。若停止获取位置信息,则停止定时器,从而停止位置管理服务。
本发明可同时基于GPS_PROVIDE卫星定位服务与NETWORK_PROVIDER基站定位服务来获取定位信息,能为定位应用返回实时有效的定位信息,避免返回在需要定位信息时取得的是其未及更新的历史数据。此技术可满足任何基于Android平台的手机实现实时获取有效定位信息,具备自动处理获取最新有效定位信息的功能。
最后所应说明的是,以上具体实施方式仅用以说明本发明的技术方案而非限制,尽管参照实例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。