APP下载

基于Android的移动终端GPS测量系统的设计与开发

2011-04-18秦超姜良君蔡永香

城市勘测 2011年1期
关键词:测量点长度面积

秦超,姜良君,蔡永香

(长江大学地球科学学院,湖北荆州 434023)

基于Android的移动终端GPS测量系统的设计与开发

秦超∗,姜良君,蔡永香

(长江大学地球科学学院,湖北荆州 434023)

本文针对手机GPS功能进行移动应用开发,设计并实现了基于Android平台的移动终端GPS测量系统。在分析学生野外测量实习需求的基础上,对系统进行了功能模块划分;在系统的程序模块详细设计中,着重探讨了数据库的设计与地块长度/面积计算方法。测试结果表明,该系统已能替代GPS手持终端,满足野外测量实习的需要。

Android;移动终端;GPS测量

1 引 言

第三代移动通讯(3G)技术为移动终端用户带来了更快的数据传输率,也为电信网络与计算机网络的融合提供了支持。随着3G网络的使用,移动终端不仅是通讯网络的终端,也将成为互联网的终端[1]。因此,移动终端的应用和需要的服务将会有很大的发展空间。Google于2007年11月5日推出了基于Linux平台的移动终端系统软件平台——Android,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件[2],并融合了GPS技术,支持GPS的应用开发。

GPS的出现为测量技术带来了一场深刻的技术革命。利用GPS的定位功能,对于任何点状、线状、面状地物,都可以通过GPS的定位功能获取其地理坐标数据,通过地图投影方法,可计算出线状地物的长度,面状地物的面积等。以前学生野外测量实习时,常用的是手持GPS,这是一种专用的测量设备,需要专门购置和携带。而随着智能手机的发展和普及,学生基本上是人手一部,因此在基于Android平台的移动终端上开发GPS测量系统,可使得手机用户随时利用手机进行测量定位,操作方便、便于携带,具有很强的实用性。

因此,本文利用智能手机自带的GPS定位功能,通过获取测量点的地理坐标数据,进行点、线、面地物的空间位置测量,通过地图投影方法,计算出线状地物的长度或面状地物的面积及周长,并能够将结果可视化的显示在屏幕上。

2 系统功能模块划分

野外测量实际上包括独立点位测量、线状地物或面状地物的连续测量,测量数据存储、查看、显示与更新,地物面积、长度的计算等。因此,基于Android的GPS测量系统主要功能模块可以划分为:独立点位测量、地物点的动态定位测量、测量结果显示与更新、地物面积(或长度)测量。

(1)独立点位测量:测量时对独立点逐一定位,获取其地理坐标。其属性信息,如地物名称、所属图层类型、所属图层名称、测量点位置序号等,可事先在室内输入系统。

(2)地物点的动态定位测量:在线状边界测量时采用,通过设置定位间距(或者定位时间间隔),随着设备的移动每隔设定的间距(或时间)自动采集一次定位数据;而对于开始点、结束点以及转角点等这些特殊的点位,可通过点击特殊点定位按钮定位获取;用户单击停止定位按钮后,定位过程结束。其相关属性信息,如地物名称、所属图层类型、所属图层名称等可手工输入系统。

(3)测量结果显示与更新:测量结果存入数据库后,可按一定条件查询查看,结果以列表方式,或图形可视化的方式显示,列表显示顺序与测量数据的创建顺序一致;可以向数据库中添加定位数据记录或者从数据库中删除定位数据记录,并给出更新提示。

(4)地物长度(或面积)测量:通过地图投影方法,将地物经纬度坐标投影为平面坐标,从而计算出线状地物的长度或者面状地物的面积及周长,并将结果以对话框的形式反馈给用户。

3 系统详细设计

整个系统的功能是通过系统主模块、地物信息输入模块、独立点定位模块、动态定位模块、数据存储、数据查看与更新模块、面积/长度测量模块以及图形显示等程序模块来实现(如图1所示)。

(1)系统主模块是整个系统的入口。它实现的功能包括显示程序主界面、打开/创建数据库、查看所有图层、删除数据库,查看帮助信息,该模块基于类Welcome来实现。

(2)地物信息输入模块负责地物属性信息的输入,同时打开独立点定位模块、动态定位模块和增加测量点模块,该模块基于类InputObject来实现。

图1 系统程序模块图

(3)系统设计了一个数据存储模块来管理定位数据,它负责创建和打开存放定位数据的存储系统,并向其他模块提供数据访问接口。该模块基于类DataStorage来实现。

(4)独立点定位模块,获取独立点的GPS绝对定位数据,从中提取经、纬度,并将定位数据保存至数据库。该模块基于类StLocate来实现。

(5)动态定位模块,完成地块边界的连续测量和特殊点位的定点测量。用户可以选择动态显示测量点经纬度或动态显示地物地理位置来进行动态定位。定位开始后,当GPS设备每移动用户所设的距离(或时间),该模块就会自动获取所在点的经纬度并将其加入到对应地物;同时,用户可根据需要在特殊点位处点击按钮获取其地理数据;最后将该地物保存至数据库。动态定位模块基于类DyLocate或DyShowMap来实现。

(6)数据查看模块,根据图层名称、地物名称等在数据库中查询记录,并以顺序列表的方式显示给用户。该模块基于类ListLayer、ListObject和ListPoint来实现。

(7)图形显示模块,对查看的地物以可视化的方式显示其地理分布特征。该模块基于类ShowMap来实现。

(8)面积/长度测量模块,对查看的地物计算长度和面积。该模块基于类ListObject实现。

(9)数据更新模块,对查看地物进行数据添加或者某些数据的删除。该模块是由类AddPoint及其他部分来实现的。

整个系统程序模块的详细设计中,数据库的设计和长度/面积计算方法设计是最关键的部分,下面对这两个部分进行详细说明。

3.1 数据库设计

本系统使用的是Android平台集成的嵌入式关系型数据库——SQLite数据库,这是一款轻型的数据库,其设计目标是嵌入式应用,目前已在很多嵌入式产品中使用。它占用资源非常的低,在嵌入式设备中,只需要几百K的内存,支持Windows/Linux/Unix等主流的操作系统,同时能够与很多程序语言相结合。和Mysql、PostgreSQL这两款世界著名的开源数据库管理系统相比,它的处理速度比他们都快[3]。

在本数据库中创建了三个表Layer、Object和Point,分别用来存储图层记录、地物记录和测量点记录。表Layer与表Object通过字段layer_name连接,一个图层由一个或多个对应类型的地物组成;表Object与表Point通过字段object_name连接,一个地物由一个或多个测量点组成。他们的结构分别如表1、表2、表3所示(表中粗体标识字段为该表的主键)。

表Layer的结构 表1

表Object的结构 表2

表Point的结构 表3

如图2所示,本系统抽象出地物类MyObject,据此派生出点状地物类PntObject、线状地物类LObject和面状地物类AObject。MyPoint是由经纬度及其他属性组成的类,三种地物均由一个或多个MyPoint对象组成。数据库方法只须将抽象地物类对象的引用作为参数,便可对不同地物进行统一操作,这样减少了数据库接口方法中参数的个数,其他模块调用数据库方法就变得非常简单,在一定程度上屏蔽了数据库的复杂性,也便于日后维护。抽象地物类还可以用于其他模块。

图2 数据操作结构图

本数据库的优点在于改进了数据存储方式,数据库不直接操作测量点,只对完整的地物进行操作,避免了对数据的频繁读写,也在一定程度上保证了数据的完整性。

3.2 长度/面积测量实现原理

(1)利用地图投影,球面坐标向平面坐标转化

通过测量,获得的地物地理数据,是球面坐标下的经纬度值,如果要计算其面积或长度,必须在平面坐标下进行。因此,首先要对测量点的坐标进行投影转换。

地图投影采用高斯-克吕格投影,为了减小误差,将投影的中央经线放置在测量区块的中间位置,即计算出该区块所有测量点经度的平均值,作为投影的纵坐标,赤道投影为横坐标构建高斯平面。然后重新遍历一次该地物的所有测量点,利用高斯投影公式将它们的经纬度转化为平面上的坐标[4]。高斯-克吕格正射投影优化公式如下[5]:

其中,B为测量点的纬度,L为测量点的经度距中央经线的经差,单位均为弧度。

(2)长度/面积计算

在已知折线各拐点坐标的情况下,可用如下公式快速的求出折线的长度

地块面积的计算采用梯形面积累加法。其基本思想是在平面直角坐标系中,按多边形顶点顺序依次求出多边形所有边与X轴(或Y轴)组成的梯形面积,然后求其代数和,这个代数和即为多边形面积。例如,对五边形(如图3所示),其面积计算公式为:

图3 五边形(阮志成,1978)

同理,对于任意多边形,假设有n个顶点(Xi,Yi),则该多边形的面积求算公式为:

该公式适合各类不规则多边形的面积计算。计算出的多边形面积即为该地块的面积。

4 系统实现

本系统是在Java Development Kit(JDK)v6.0,Android SDK 1.0r2以上,在Eclipse集成开发环境中开发实现的。本系统的功能已经基本实现,并初步通过了测试。图4是显示长江大学14教前草坪面积及长度的界面,图5是足球场地理位置分布图。

图4 草坪面积及长度显示结果

图5 足球场地理位置分布

在系统测试过程中,我们与手持GPS进行了测量对比。对同一区块,同时采用手持GPS和Android手机进行测量,发现除了手持GPS寻星速度较手机稍快以外,定位精度、长度/面积测量两者大体一致。手持GPS寻星速度较手机稍快,可能是由于其内置较大功率天线的原因。

5 结 论

本文针对手机上的GPS功能进行移动应用开发,设计并实现了基于Android平台的移动终端GPS测量系统。在分析野外测量实习需求的基础上,对系统的功能模块进行了划分;在系统的程序模块详细设计中,着重讨论了数据库的设计与地块长度/面积计算方法。最后对本系统与手持GPS进行了测量对比,测试结果表明,该系统已能替代GPS手持终端,完全能满足野外测量实习的需要,在手机普及的情况下,野外测量无需再专门购置设备,使用成本大大降低,且携带方便,可随时进行野外作业。

本系统下一步计划要扩展的功能是:

(1)测量数据输出并能上载添加到GIS系统中更新已有的GIS数据;

(2)将预编辑好的文本文件形式的属性数据读入程序,实现测量地物属性数据的批量录入。

[1] 王紫瑶,南俊杰,段紫辉等.SOA核心技术及应用[M].北京:电子工业出版社,2008:1~15

[2] http://baike.baidu.com/view/1241829.htm?fr=ala0_1_1

[3] http://baike.baidu.com/view/19310.htm

[4] 公磊.基于Android的GPS测量系统开发[D].南昌大学硕士学位论文,2008

[5] 沈永年,孔庆喻.1980西安坐标系快速高斯投影计算公[J].冶金测绘1994,3(2):38

[6] 阮志成.解析法计算多边形面积的改进[J].测绘通报,1978(06):45

The Design and Development of GPS Survey System Base on Android Platform

Qin Chao,Jiang LiangJun,Cai YongXiang
(School of Geoscience,Yangtze University,Jingzhou 434023,China)

In this paper,the mobile terminal GPS survey system based on android platform is designed and realized. The system functional modules are designed according to the analysis of student demands in field surveying practice,it focuses on the design of the database and the method of block length/area calculation in the detailed design of system program modules.The result shows that the system has been able to substitute for GPS handset,and it can meet the needs of field surveying practice.

Android;Mobile Terminal;GPS Survey

1672-8262(2011)01-64-04

P228.1

A

2010—07—12

秦超(1988—),男,长江大学地球科学学院在校学生。

长江大学楚天学者项目资助(201007)

猜你喜欢

测量点长度面积
飞机部件数字化调姿定位测量点的优选与构造算法
怎样围面积最大
最大的面积
巧用面积法解几何题
1米的长度
浅析冲压件测量点的规划
基于CAD模型的三坐标测量机测量点分布规划
PM2.5空中探测器的设计
巧用面积求坐标
爱的长度