基于Android的移动终端测量系统

2020-08-31 01:38郭炳
软件工程 2020年8期
关键词:传感器测量

郭炳

摘  要:针对目前Android市场大多数测量系统功能单一、测量过程复杂等问题,本文设计一种基于Android的移动终端测量系统。该系统利用移动终端自带GPS定位、方向传感器获取的数据,结合几何方法,实现高度、面积、距离测量集于一体。测量结果表明,本系统操作简单,可准确测量室内室外目标物体特别是因周围环境因素无法接近的物体高度,以及不规则土地面积和周长。

关键词:Android;传感器;GPS;测量

中图分类号:TP311     文献标识码:A

Abstract: Aiming at the problems of single function with complicated measurement process of most measurement systems in the current Android market, this paper designs a mobile terminal measurement system based on Android. The system utilizes the geometric method and the data obtained by GPS (The Global Positioning System) positioning and direction sensor of mobile terminals to realize the integrated measurement of height, area and distance. The measurement results show that the system is simple to operate and can accurately measure the height of indoor and outdoor objects, especially those objects that cannot be approached due to environmental factors, as well as the irregular land area and perimeter.

Keywords: Android; sensor; GPS; measurement

1   引言(Introduction)

随着移动互联网的发展,移动智能终端设备市场占有率暴增。Android平台的开源优势,使其成为用户的首选。基于Android系统开发的应用,在移动应用市场占主导地位。智能手机不仅有高效的运算处理能力、出色的多媒体技术、便捷的信息共享能力,还植入各种感知环境的传感器,这使得智能手机逐渐成为人们感知周围环境的工具[1]。GPS的出现为测量技术带来了一场深刻的技术革命。利用GPS的定位功能,对于任何点状、线状、面状地物,都可以通过GPS的定位功能获取其地理坐标数据,通过地图投影方法,可计算出线状地物的长度、面状地物的面积等[2]。

目前,基于Android智能手机的测量系统得到了广泛应用。例如,利用方向传感器测量物体高度[3,4],利用GPS定位服务测量距离和面积[5-7]。但大多数应用功能比较单一,操作时比较专业。测量人员在野外作业,长途跋涉,需要携带重量较重的专业设备,而且专业设备操作复杂,一定程度上给测量人员带来困难[8-11]。建筑人员有时测量远处建筑物的高度,由于河流或其他屏障,无法到达目标建筑物的附近,这给测量工作造成了一定的难度。务农人员测量土地面积时,操作专业设备比较困难。

针对以上问题,本文设计了一款多功能的测量系统,当工作人员因外界因素无法近距离测量目标物时,本系统可准确测量室内室外目标物体高度,以及测量不规则土地面积、周长。操作简单,携带方便。本系统运行在安装有Android系统的移动终端,例如手机、平板,是面向工程测量人员、科研工作者、建筑人员、农村务农人员开发的一款应用软件。

2   系统设计(System design)

2.1   系统模型设计

测量高度功能是利用移动终端延长线与目标物体顶端、底端之间的夹角,结合测量者身高来计算目标物体的高度,以及目标物体与测量者之间的距离。测量面积功能是利用移动终端获取GPS经纬度坐标,计算坐标点包围区域面积和周长,最后将经纬度坐标转换为屏幕坐标,将所包围区域画出来,显示在终端屏幕。

测量距离功能原理与测量面积原理相同,图1为系统功能结构图。

2.2   系统详细设计

2.2.1    高度測量模块

高度测量公式是利用测量者身高、手机角度传感器所测角度,根据三角函数推导得出。如图2所示,在测量点1,测量者手持手机,伸直手臂,手机屏幕向上,将手机平面处在眼睛和目标物体顶点连线上,记录手机传感器上仰角。站在测量点1不动,再记录下仰角。同理,测量者移动到测量点2的位置,记录上仰角和下仰角。公式(1)为高度测量公式:

高度测量模块由MeasureHeight类实现,该类实现了SensorEventListener接口。通过getSystemService()和getDefaultSensor()函数获取传感器。由registerListener()函数注册传感器监听,recordAngel记录传感器角度。在测量点1位置测量时,由变量angle11记录位置1的上仰角,由变量angle12记录位置1的下仰角。移动到位置2时,由angle21记录位置2的上仰角,由angle22记录位置2的下仰角。通过flagRecordAngel标记区分两个测量位置的四个不同角度。最后由sizeMeasure()函数使用公式(1)计算目标物体高度,用公式(2)计算测量位置2与目标物体之间的水平距离。

2.2.2   面积测量模块

面积测量模块由MeasureArea类实现,getLastKnownLocation()函数获取GPS位置信息,requestLocationUpdates()函数设置GPS位置更新间隔,本系统默认为每隔1秒更新1次。savePoint()函数将坐标点保存到datalist中,最后由computeArea()函数计算坐标点所围区域的面积。记录坐标点分两种模式,一种是手动记录,每走一段距离点击一下“手动记录”按钮;另一种是自动记录模式,这种模式不需手动点击按钮,只要点击一下开始和结束即可,系统自动记录坐标点。

计算面积后,通过paintArea()函数将测量区域画出来,使测量者更加直观的了解地块的形状。画图之前,locationTran()函数将经纬度坐标点转化为屏幕坐标点,再根据画图区域宽和高生成比例因子。转化后的坐标点存储在Xyzpoint类的列表中。最后通过drawLine()、drawCircle()、drawText()这3个函数将线、点、序号画出来。

2.2.3   距离测量模块

距离测量模块由MeasurePath类实现,getLastKnownLocation()函数获取GPS位置信息,requestLocationUpdates()函数设置GPS位置更新间隔,本系统默认为每隔1秒更新1次。savePoint()函数将坐标点保存到datalist中,最后由computePrea()函数计算坐标点之间的距离。记录坐标点分两种模式,一种是手动记录,每走一段距离点击一下“手动记录”按钮;另一种是自动记录模式,这种模式不需手动点击按钮,只要点击一下开始和结束即可,系统自动记录坐标点。

计算距离后,通过paintArea()函数将测量线路画出来,使测量者更加直观的了解路径的形状。画图之前,locationTran()函数将经纬度坐标点转化为屏幕坐标点,再根据画图区域宽和高生成比例因子。转化后的坐标点存储在Xyzpoint类的列表中。最后通过drawLine()、drawCircle()、drawText()这三个函数将线、点、序号画出来。

2.3   系统特点

测量系统是面向工程测量人员、室内外装潢装修人员、农村土地测量等人员开发的一款应用软件,由于该软件只需安装在移动终端,使用非常方便。该软件系统采用Android传感器技术、GPS定位技术,实现目标物体高度测量、区域面积和周长测量、距离测量。与专业测量工具相比,该系统具有携带方便,操作简单,经济实惠等特点。与目前网上测量软件相比,该系统具有功能多、精度高等特点。特别是高度测量功能,在室内室外精度一样高。

3   系统环境与测试(System environment and testing)

3.1   系统环境

本系统主要以Eclipse为开发环境,采用Java程序设计语言,各类装有Android4.0及以上系统手机或者平板都可运行。

3.2   系统测试

第一步:首先启动APP,将进入软件主界面,主界面显示四个按钮,分别为“测量高度”“测量面积”“测量距离”“退出”按钮。本系统的启动时间少于1秒。

第二步:选择要执行的功能,如选择测量高度功能,点击“测量高度”按钮,进入测量高度界面,测量者站在测量位置,手持装有测量精灵软件的智能手机,手臂伸直,手机屏幕向上,微调手机倾斜角度,使手机屏幕处于眼睛与目标物体顶端连接线上(如图3),点击屏幕底部“单机记录角度”按钮,界面上位置1后“角度1”栏内显示具体角度,该角度对应图2中。然后手臂向下倾斜,瞄准目标物体底端,记录“角度2”,对应图2中。按照同样操作步骤,测量者向前移动一定距离(大约测量位置距目标物体距离的一半左右),记录位置2的“角度1”和“角度2”,分别对应图2中的和。

最后在“请输入身高(cm)”栏内输入测量者的身高,点击“计算”按钮,界面上方显示目标物体高度和位置2与目标物体之间的水平距离。图4为测量普通平房效果图,误差为5cm左右。点击“清空”按钮,可再次进行测量。

第三步:如选择面积测量功能,点击“测量面积”按钮,进入测量面积界面,有两种测量模式,第一种是手动记录模式,当右上角“测量结果”栏内出现“坐标点数为0”字样时,说明系统已获取GPS服务,点击“手动记录”按钮,然后绕行被测区域行走一周,边走边点击“手动记录”按钮,特别是走到拐弯的地方,记录下坐标点,计算精度更高。当行走一圈回到原点后,点击“显示结果”按钮,界面“形状显示”区会显示所测区域的形状,“测量结果”区会显示所测区域面积和周长。图5为手动模式下测量面积结果图。点击“清空数据”按钮可继续进行测量。

第二种是自动记录模式,同样,当右上角“测量结果”栏内出现“坐标点数为0”字样时,点击“自动记录”按钮,该按钮变为“点击结束”,测量者开始绕被测区域行走一周,行走过程无须点击任何按钮。为了提高计算精度,当走到拐弯的地方,应稍作停留,大约2秒。当回到原点时,点击“点击结束”按钮,自动记录模式结束,点击“显示结果”按钮,界面“形状显示”区会显示所测区域的形状,“测量结果”区会显示所测区域面积和周长。图6为自动记录模式下测量结果图。

第四步:如选择距离测量功能,点击“测量距离”按钮,进入测量距离界面,该模块操作与面积测量模块类似,第一种是手动记录模式,当右上角“测量结果”栏内出现“坐标点数为0”字样时,说明系统已获取GPS服务,点击“手动记录”按钮,然后沿着被测路径行走,边走边点击“手动记录”按钮,特别是走到拐弯的地方,记录下坐标点,计算精度更高。当行走到终点后,点击“显示结果”按钮,界面“形状显示”区会显示所测路径的形状,“测量结果”区会显示所测路径长度。第二种是自动记录模式,同样,当右上角“测量结果”栏内出现“坐标点数为0”字样时,点击“自动记录”按钮,该按钮变为“点击结束”,然后沿着被测路径行走,行走過程无须点击任何按钮。为了提高计算精度,当走到拐弯的地方,应稍作停留,大约2秒。当回到终点时,点击“点击结束”按钮,自动记录模式结束,点击“显示结果”按钮,界面“形状显示”区会显示所测路径的形状,“测量结果”区会显示所测路径长度。

4   结论(Conclusion)

本文通过几何理论,利用智能手机内置方向传感器、GPS定位,设计并实现了移动终端测量系统,可准确测量物体高度、区域距离和面积。具有操作简单,携带方便等特点,可应用在工程建筑、室内装修、农业农村、野外测量等领域,在实际操作中本系统有良好的应用效果。

参考文献(References)

[1] Liu X , Du X , Zhang X , et al. Adversarial Samples on Android Malware Detection Systems for IoT Systems[J]. Sensors, 2019, 19(4): 974-986.

[2] 張东红,马友华,管飞,等.基于GPS的农机作业面积与轨迹监测管理系统[J].地理空间信息,2018,16(02):68-70.

[3] 李亚东,冯仲科,曹明兰,等.Android智能手机树高测量APP开发与试验[J].中南林业科技大学学报,2016,36(10):78-82.

[4] 颜婉倩,巩宇涵,石玉立.以安卓智能手机为平台的树木高度测量技术[J].江苏林业科技,2016,43(4):40-43.

[5] 赵方,张洁,赵天忠,等.基于Android平台的GPS林地面积测量[J].计算机工程与应用,2014,50(23):261-266.

[6] Singhal M, Shukla A. Implementation of Location based Services in Android using GPS and Web Services[J]. International Journal of Computer Science Issues, 2012, 9(1): 237-242.

[7] 张艳芳,周聪.基于Android平台的移动终端设备的面积测量应用开发[J].计算机与现代化,2009(12):147-149;153.

[8] 张宏桥,贺玉泉,张国帅,等.一种非接触式线段测量系统的实现[J].软件工程,2019,22(9):31-33.

[9] 张振军,杨松,唐磊.基于Android的河道测绘移动终端设计与实现[J].北京测绘,2018,32(08):73-76.

[10] 李越.基于Android的地质灾害野外调查信息采集系统的设计及实现[D].云南大学,2015.

[11] 刘晓,张照录,袁晏明,等.基于Android的野外地质实习辅助教学系统[J].中国地质教育,2015,24(1):123-124.

作者简介:

郭   炳(1985-),男,硕士,实验师.研究领域:移动互联应用,数据挖掘.

猜你喜欢
传感器测量
康奈尔大学制造出可拉伸传感器
简述传感器在物联网中的应用
“传感器新闻”会带来什么
跟踪导练(三)2
测量