基于iOS的图根控制测量记录计算手机软件开发
2016-09-02连达军张志敏蒋灵羽郑留蒋
连达军,张志敏,蒋灵羽,郑留蒋
(苏州科技大学,江苏 苏州 215011)
基于iOS的图根控制测量记录计算手机软件开发
连达军,张志敏,蒋灵羽,郑留蒋
(苏州科技大学,江苏 苏州 215011)
传统的图根控制测量一般遵循先外业观测后内业计算的工作顺序,经过测站检核、计算检核和成果检核后才能得到合格成果,智能手机软件可促进该项工作观测计算的一体化和智能化。本文利用图根控制测量相关理论,借助于Objective-C语言设计开发了基于iOS系统的图根控制测量记录计算软件。该软件由底图导入、电子手簿显示与记录、水准测量平差计算、导线计算与纠错5大模块构成,可实现图上选点与略图绘制、控制点高程与平面坐标计算及导线测量错误检查等功能。分析测试结果表明,在图根控制测量过程中,该软件可将外业观测数据记录检核与内业计算平差同时进行,节省了计算检核的时间,提高了测量效率,可作为图根控制测量的便携记录计算工具。
图根控制测量;电子手簿;导线纠错;iOS移动开发平台
图根控制测量是大比例尺地形图测绘的重要环节,该环节观测数据的精度直接影响成图质量,其观测与数据计算工作能否顺利实施决定着地形图测绘的效率。然而传统的图根控制测量数据计算费时费力,一旦在观测、记录、数据输入和计算任一环节出现问题,都需要从头检查数据,目前已有一些基于PC机开发的测量数据计算软件,但由于电脑携带不方便且电源续航时间较短等原因,很难实现现场实时解算数据。考虑到iOS系统的稳定性和手机软件便携特性,本文拟基于iOS移动开发平台设计开发图根控制测量记录计算手机软件(简称测量型计算器)。
一、软件开发环境与总体设计
本软件基于iOS手机移动平台设计开发,使用Objective-C编程语言进行程序代码编写,在Xcode集成开发环境下进行应用程序调试,拟实现底图导入、图上选点与导线略图显绘(模块1)、测量手簿保存与测站检核(模块2)、水准测量计算(模块3)、导线测量计算及查错(模块4、5),以及结果显示与保存等功能,图1为软件总体设计图。
二、主要功能模块设计
1. 底图导入功能模块
在联网状态下,导入测区周围地图作为工作底图,实时显示测区概况,可在底图上标示控制点,形成水准路线或导线略图。为此,用户只需在主界面上选择水准或导线计算模式,即可进入底图显示与数据输入界面;考虑到手机屏幕较小,将搜索栏和控件置于界面顶端,以最大屏幕空间显示底图并标示自选点,为方便用户辨认,已知点和待测点分别以符号▲和●表示,通过用户输入的已知点数目判断网型。
图1 图根控制测量记录计算手机软件总体设计
2. 电子手簿显示与记录功能模块
观测记录手簿是图根控制测量的原始数据和第一手资料,也是数据检查、观测值重测和计算检核的重要依据,观测过程中其末位数不能随意涂改。本软件设置电子手簿功能模块,可直观显示观测数据、进行测站检核计算及读写数据,且具备纸质记录手簿的所有功能,输入的数据不可更改,对经测站检核计算不合格的观测值在备注栏进行标示,并弹出警告和重测信息,以方便用户查看。表格显示通过代码进行设计而不是拖动控件实现,单元格大小根据输入的字符个数确定,以减轻测量人员外业观测工作负担,使测量计算更加方便快捷。
3. 内业计算功能模块
图1中模块3和4是本软件的核心功能,模块3包括闭合水准路线和附合水准路线的计算、观测数据经测站检核和计算检核,确认无误后,系统会调用levelcal()函数进入水准路线平差计算界面;导线计算模块4主要包括闭合导线和附合导线的计算,与模块3不同之处在于其角度闭合差或导线全长相对闭合差超限时会启动模块5进行超限纠错计算。
4. 导线测量纠错功能模块
本模块主要针对一个转折角或一条导线边观测错误时的情形进行功能设计:分别从导线端点开始沿相反方向推算各点坐标,两套坐标值相近的点对应的转折角需要重测;若某导线边坐标方位角αDi与导线全长闭合差方向的坐标方位角αf相近,则该导线边Di需要重新进行距离测量。
三、模块功能实现与测试
1. 程序主界面
本软件主要界面(如图2所示)直接用Xcode开发环境中的控件进行设计,细节部分(如警告框)通过编码实现。程序主界面(图2(a))上有水准计算和导线计算两个按钮,头文件声明各种成员变量、方法和属性,源文件主要声明方法,按钮跳转则通过响应事件和返回委托来实现。
2. 底图导入模块
底图导入模块界面(图2(b))包括底图导入和在底图上画点连线形成水准线路或导线略图两部分功能,本软件导入的是高德地图,利用Xcode中MKMapView模块提供的addOverlay功能在底图上画点连线,可先在地图上设置一层遮罩,然后进行绘制。
3. 电子手簿显示与记录模块
电子手簿显示与记录界面如图2(c)所示,单元格中的内容不可更改,输入测站观测数据后若经计算测回间互差超限,软件会在备注栏进行标示,提醒观测人员重新进行观测。数据存储则通过数据库的双向链表实现,将每个点输入的数据都存入一段链表的结点中,计算时直接到链表中读取。双向链表实现代码如下:
@interfaceLevelData :NSObject
{
int Sum;∥总点数
LevDataBase *HeadOfData;∥头指针
LevDataBase *TailOfData;∥尾指针
}
为节省手机内存,每次计算结束后都要删掉链表中的观测点数据。
图2 软件主要界面
4. 内业计算功能模块
图2中(d)和(e)分别为水准测量和导线测量计算界面,水准计算和导线计算是本软件的核心功能。以水准测量计算为例,主要包括闭合路线和附合路线的计算,在图上标识好待测点之后系统会根据输入的已知点个数判断是自动连接成闭合还是附合水准路线,再通过不同的算法进行计算。由于主要的算法类似,此处以闭合水准路线计算为例介绍其实现方法,系统默认按照距离来进行高差闭合差的分配,主要代码如下:
∥闭合
h=levdata.HeadOfData.AltitudeFromFront;
for(LevDataBase *temp =levdata.HeadOfData; temp != nil; temp = temp.Backward)
{
if(!temp.IsKnownPoint)
{h+=temp.AltitudeFromFront; }
s+=temp.DistanceFromFront;
}
fh=40*sqrt(s)/1000;
for(LevDataBase *temp =levdata.HeadOfData; temp != nil; temp = temp.Backward)
{
if(!temp.IsKnownPoint)
{
temp.Elevation=temp.Forward.Elevation+temp.Fo rward.AltitudeFromFront+h/s*(-1)*temp.Forward.DistanceFromFront;
d=[NSStringstringWithFormat:
@"%@: %.3f ",temp. PointName,
temp.Elevation];
b=[b stringByAppendingString:d];
}
}
如果计算过程中高差闭合差超限,则计算停止,并跳出警告框,代码如下:
if(h>=fh‖h<=(-fh))
{
UIAlertView *alert=[[UIAlertViewalloc]
initWithTitle:nilmessage:@"高差闭合差超限"delegate:selfcancelButtonTitle:@"确定"otherButtonTitles:nil];
[alertshow];
[alertrelease];
result=[result-stringByAppendingString:@" 高差闭合差超限"];
return result;
}
5. 计算结果输出与导线纠错功能
结果输出界面包括一个计算按钮和两个用于界面跳转的按钮,计算按钮连接了水准计算和导线计算的源文件中的算法,通过tradata()和leveldata()函数调用需要显示的数据并显示在文本框,如图2(f)和(g)所示。若经计算,角度闭合差fβ或导线全长相对闭合差T超限,则调用导线查错模块,查找观测错误的转折角或导线边,该模块界面与差错结果如图2(h)和(i)所示。
四、结束语
本文利用手机软件易于安装、便于携带的优点,设计开发了基于iOS系统的图根控制测量记录计算软件,可实现在线导入测区底图、标注并连接已知控制点和待测点、绘制水准线路或导线略图等功能。利用该软件的电子手簿显示记录模块,可在测量现场进行观测数据记录、计算和测站检核,即时发现误差较大的观测数据,并对出错的水准测量前、后视读数,导线转折角及导线边进行重测;经测站检核合格的观测数据直接存储并调用内业计算程序进行高程平差或导线计算,导线计算结果显示角度闭合差或导线全长闭合差超限时,借助该软件的导线查错程序可发现测错的角度或边长,该软件可节约图根控制测量时间、减轻观测计算工作量并对测量数据进行实时处理。但该软件在代码冗余、线路或导线形式多样化、左右角自动换算等方面还存在一些不足,今后需要不断完善其计算和数值存储显示功能。
[1]顾孝烈,鲍峰,程效军.测量学[M].3版.上海:同济大学出版社,2006:147-150.
[2]杨帆,郑青青,王风筱.iphone应用开发从入门到精通[M].北京:机械工业出版社,2011.
[3]艾伦,阿佩尔克莱因.iphone开发实战[M].北京:人民邮电出版社,2009.
[4]LEE Weimeng. IOSS编程入门经典[M].北京:清华大学出版社,2012.
[5]杨正洪,郑齐心,李建国.Objective-C程序设计[M]. 北京:清华大学出版社,2011.
[6]达尔林普尔,纳斯特. Objective-C基础教程[M].北京:人民邮电出版社,2009.
[7]申健康. 基于手机的测量计算程序开发和应用[J].测绘科学,2011,36(2):91-93.
[8]魏建文,张明媚.测量计算器的设计与实现[J].科技情报开发与经济,2010,20(13):211-212.
[9]董钧祥.测量坐标转换模型及其应用[J].昆明理工大学学报,2006,31(3):2-4.
[10]陆鹏. 基于智能手机的测量计算器软件开发[J].测绘技术装备,2012,14(4):62-64.
Mapping Control Surveying Record and Calculation Software Development Based on iOS Mobile Phone System
LIAN Dajun,ZHANG Zhimin,JIANG Lingyu,ZHENG Liujiang
10.13474/j.cnki.11-2246.2016.0167.
2015-09-10
江苏省高等教育教改研究课题(2013JSJG246)
连达军(1972—),博士,副教授,研究方向为测绘工程与GIS应用。E-mail:ldjwwyx@126.com
P21
B
0494-0911(2016)05-0104-03
引文格式: 连达军,张志敏,蒋灵羽,等. 基于iOS的图根控制测量记录计算手机软件开发[J].测绘通报,2016(5):104-106.