基于安卓系统无信号状态下的手机APP导航定位

2019-01-03 09:07王伟栋周志易李晓莉符永清张水根
城市勘测 2018年6期
关键词:经纬度球面安卓

王伟栋,周志易,李晓莉,符永清,张水根

(合肥工业大学 土木与水利工程学院,安徽 合肥 230009)

1 引 言

GPS导航定位技术在国民生产和社会发展的应用越来越广泛,已经融入较多的学科领域。未来的GPS民用技术将向着使用可靠性、经济性、快速、高精度方向发展。能够更好更全面地使用GPS技术,是目前广大用户的强烈需求。

安卓系统目前是全球第一大用户操作系统,激活设备超过20亿台,占据了大部分的移动市场。安卓系统以其开放的姿态和强大的功能受到广大开发者的喜爱。根据自身需求在安卓平台上开发合适的应用是现在以及未来的热点。

目前的海上定位导航设备是基于一套完整的航海自主移动平台,且都装配在大型的船上,精度较高、定位速度快,但是体积庞大,价格昂贵,出现导航故障时不易发现和纠正。虽然目前手机软件市场存在较多导航定位软件,但是在无移动数据信号覆盖的情况下,依然不能进行导航,无法满足用户的需要。而在陆地导航定位时,需购买相应的导航设备,价格较贵,携带也不方便。而智能手机在国内基本上普及,时刻携带在身边,且具有GPS定位功能。所以,在航行的过程中,用户拥有一款可以在无信号覆盖的情况下,通过手机进行实时定位且能确定航线方向的手机APP非常重要。

2 思路、原理及数学模型

2.1 主要设计思路(如图1所示)

2.2 数据处理原理

利用手机GPS获取到的椭球面上大地元素,按照白塞尔投影条件投影到辅助球面上,得到球面相应值,即实现椭球面向球面的过渡;在球面上解算大地问题;按球面上得到的数值计算椭球面上的相应数值,即实现从圆球向椭球的过渡。

图1 设计思路框图

2.3 数学模型

椭球的大地元素与球面大地元素之间的关系,如图2所示。

图2 椭球与球面大地元素关系图

在椭球面上大地线微分方程为:

(1)

在单位圆球面上,易知大圆弧的微分方程为:

(2)

由以上两组关系式易知二者有如下关系式:

(3)

3 程序设计

3.1 程序设计流程图

利用JAVA语言设计的程序流程图如图3所示。

图3 程序设计流程图

3.2 程序开发实例

本软件是基于Android Studio开发平台,适用的最低版本为Android 6.0。程序界面主要包括正反算按钮、定位按钮、用户所在地、目的地、大地距离、大地方位角等显示框。本程序生成一份apk安装文件,可直接安装在Android系统的智能手机上进行使用。

(1)手机GPS自动定位

将手机处于室外开阔处,并打开GPS定位功能,启动软件便可自动定位获取所在地的经纬度。获取到的经纬度界面如图4所示。

(2)实时经纬度获取

点击如图5所示的位置一的获取按钮,将实时获取的经纬度显示到如图5所示界面的两个文本框中使用。

图4 经纬度的获取

图5 经纬度的显示

(3)功能按钮

功能按钮如图6所示,反算按钮进行大地主题的反算,正算按钮用来进行大地主题的正算,清除按钮用来清空所有文本框,保存按钮用来保存结果数据,设置按钮用来选择一个路径存储数据,路径如图7所示。

图6命令按钮

图7 保存路径

(4)实时大地主题解算

算法程序令该经纬度坐标作为获取的参数1,目的地经纬度坐标作为输入的参数2,不断地进行实时的经纬度获取并调用白塞尔大地主题的反算算法,计算当前点与目标点之间的大地距离和大地方位角。

大地主题反算的数据实时获取如图8所示。在两个不同的位置分别获取,便可得到两个位置实时数据。实时解算的结果如图9所示。

图8 目标位置的实时获取

图9 解算的结果

从图7中可得到大地距离和大地正反方位角,用户根据这些数据可得知与目的地的距离并调整航行方向,顺利抵达目的地。

(5)手动输入进行大地主题的解算

该程序不仅可以通过手机自动定位实时进行大地主题的解算,也可以通过手动输入数据进行大地主题解算,手动输入按正算反算所需数据进行输入,手动输入如图10所示。

图10 手动输入数据

4 程序设计部分问题说明

4.1 定位精度问题

手机内置GPS模块虽然定位速度快,且不受手机信号的影响,但是其定位精度不容乐观。为了能够更好地提高定位效果,本文尝试使用其他的星基系统。广域差分系统(WAAS)通过向用户播发钟差改正数、大气时延等一系列改正信息,帮助用户改善定位精度。若用户手机无法支持WAAS信号,那么可改进原始观测数据的计算方法。如电离层双频改正、卫星高度角定权、收集多种卫星系统的观测数据。

4.2 初始化定位问题

手机GPS和GPS接收机一样,存在初始化定位速度较慢的问题。时间一般为 10 min~30 min,这在航行失去信号情况下是无法接受的。在不失定位精度的前提下,本文认为应进行热启动,即保持手机定位功能开启,这样在需要时可快速获取坐标。此外,船只的移动速度越小,定位所需时间越少。手机应处于船只开阔处,利于接收卫星信号。

5 结 语

研究开发的软件可直接利用安卓设备的GPS信号接收功能,并根据大地主题解算的算法快速得到用户所在地至目的地的大地距离和方位。经测试,在没有其他导航设备并关闭安卓手机数据功能的情况下,基本可实现导航功能。虽然能达到预计效果,但是也存在一些问题,比如精度不高,不能显示路况等。在未来的研究方向中,提高精度和能够较好显示路况是最主要的两个工作,软件的应用前景将会得到很大提升。

猜你喜欢
经纬度球面安卓
iPhone不卡的秘密曝光:安卓也能享受
关节轴承外球面抛光加工工艺改进研究
转体桥大直径球面平铰底部混凝土密实度控制
文物表情包
球面检测量具的开发
基于经纬度范围的多点任务打包算法
深孔内球面镗刀装置的设计
自制中学实验操作型经纬测量仪
一种基于安卓系统的手机侧抓包分析方法
澳洲位移大,需调经纬度