| 基于Android平台的点之记管理系统的实现 |
2. 武汉大学灾害监测与防治研究中心,湖北 武汉,430079
2. Research Center of Hazard Monitoring and Prevention, Wuhan University, Wuhan 430079, China
点之记是测绘工作中使用比较频繁的一种图件,它主要包含点名、等级、所在地、点位略图、交通线路图、实埋标石断面图和委托保管等信息。点之记可以使后续的测量作业人员了解测量点的情况,从而判断在新布设的控制网中该点是否可以继续使用,因此,点之记是测量成果延续性的重要依据。传统工作中,测量人员在工作区根据实际地形绘制简要的草图,然后进行内业整理和加工,绘制电子版或者纸质版点之记归档保存[1-4]。随着移动互联网时代的到来,智能手机、平板电脑等移动终端的发展,数据采集作业方式不应局限于PC版的数据采集,也要注重移动式的数据采集平台,移动设备为我们提供了方便快捷的操作系统,为点之记在外业现场实现规范便捷的绘制提供了可能[5-8]。本文通过将传统的点之记绘制方式与Android平台相结合,设计并实现了一套基于Android平台的点之记管理系统。
1 系统结构及功能实现基于Android平台的点之记管理系统采用Java语言编写,利用手机嵌入式的SQLite数据库,针对不同的工程项目,建立不同的table与之对应,实现对控制点信息的保存和管理,提供了数据添加、批量删除、查询、修改、按照规范要求的统一格式输出等功能,系统结构如图 1所示。
![]() |
| 图 1 点之记管理系统结构 Figure 1 Structure of the Description of Station Management System |
2 系统实现中关键问题处理办法 2.1 利用嵌入式数据库SQLite实现点之记数据管理
系统数据库采用嵌入式数据库SQLite,该库是一款轻型数据库,它遵守ACID的关联式数据库管理系统,目前已经应用于很多嵌入式产品中。SQLite数据库具有占用资源小、性能良好和零管理成本的特点,可以使复杂的数据存储变得轻松。
通过创建继承SQLiteOpenHelper的DbOpenHelper类,实现数据库的创建与更新,再以这个类为基础,创建GPSservice类用以封装关于数据的添加、删除、更新、查询等的全部业务方法。针对不同的工程项目,创建不同的table与之相对应,将控制点的信息按照工程项目进行分类保存,方便后续的控制点查询和输出工作。控制点信息分为属性信息和图片信息,将关于控制点的各类属性信息数字化后,按varchar的数据类型进行保存,图片信息直接保存在手机存储卡中,数据库中保存图片在手机存储卡中的绝对路径,以此作为关联实现图片信息的保存。数据信息的查询通过Listview实现,将线名和点名作为查找的条件,设置Listview的点击响应事件setOnItemClickListener,获取该控制点的全部信息。
2.2 利用Surfaceview实现点位略图的实时绘制点位略图可以为后续的测绘人员提供比较详尽的控制点位置信息,对于提高野外测绘人员的工作效率起着重要的作用。为此,本文开发编写了手机绘图软件实现现场制图,可以减小内业处理的工作量。软件主界面为Surfaceview控件,首先,通过Surfaceholder.Callback接口实现Surface的创建;然后,捕捉手指在手机屏幕上Action_down和Action_move事件绘制图形,程序提供了直线、四边形、圆、弧、多线段以及常见地图图例,比如路灯、坎、路牌、草坪等,可以满足绘制简图的需要。程序还提供图形特征点捕捉功能、撤销功能以及删除功能,方便纠正画图时的误操作;最后,保存为png格式的图片储存在手机SD卡中,并将保存路径录入数据库,用以后续的信息显示,如图 2所示。
![]() |
| 图 2 点位略图 Figure 2 Real-Time Draft of Control Point |
2.3 获取控制点位置和交通路线图信息
百度地图应用程序编程接口 (application programming interface, API) 是基于百度地图服务的应用接口,其中,Android SDK是为移动端应用提供的一套LBS定位服务接口,利用百度地图API,进行二次开发实现地图服务。通过LocationClient类获取定位服务,注册一个位置更新的事件监听器BDLocationListener,通过回调监听得到实时的位置信息。百度地图Android定位SDK利用设备的GPS信息、基站信息和Wi-Fi信息完成定位,获取到控制点的经纬度,作为点之记的概略位置信息。百度地图提供了反地理编码功能,通过GoeCoder.reverseGeoCode () 方法,可以把当前所处地点的位置坐标转换成详细的地址,得到省、市、区县的结构化地址描述,作为控制点所在地信息录入数据库中。
交通路线图记录了控制点附近的主要道路交通情况,百度地图API提供了地图展示和地图操作功能,通过BaiduMap.setTrafficEnabled (true) 方法获取控制点附近的交通地图,利用BaiduMap.addOverlay () 方法将Marker地标添加到地图中,用以标记控制点在地图上的地理位置,再进行缩放、旋转和改变视角等操作,得到适宜的地图比例尺,截取地图保存为图片,这样用户便可以在外业现场快速有效地获取交通路线图,如图 3所示。
![]() |
| 图 3 交通路线图 Figure 3 Transport Road Map |
2.4 道路到控制点的轨迹测量
点之记作为记录控制点位置信息的测绘资料,其作用是测量人员在使用控制点时,依据点之记方便找到实地位置。但是控制点大多埋设在野外,缺乏一些明显的地物作为参考,使寻找控制点比较困难,所以本系统中增加了道路到控制点的轨迹测量功能,方便寻找这些缺乏明显地物作为参考的控制点。该功能是结合百度地图和手机GPS定位,在地图上绘制出从主要道路到控制点的轨迹,作为额外的信息保存在数据库中。
在主界面中点击“GPS轨迹”,程序启动定位功能,在手机移动过程中不停更新GPS位置,将所在点的经纬度信息记录入数据库中。为了避免记录过程中产生过多的冗余数据,设置过滤机制,GPS在10 s内的时间中没有移动将不会被记录,以减少数据库的数据量和轨迹准确度。最后通过时间和距离双重条件控制记录频率,每隔10 s或者每隔10 m记录下所在点信息,将点位连起来获得轨迹。
2.5 控制点之记的数据获取与显示手机受自身屏幕大小以及操作系统的限制,其显示和存储信息的方式具有自身的特点。手机显示数据的方式大多采用滚动视图的模式,对于文字信息,利用Scollview控件,将一个控制点的信息按垂直顺序排列,通过上下的滚动来完成数据信息的查看与编辑;对于图片信息,点位略图由画图程序绘制,交通路线图由百度地图的交通地图获取,标石断面图由程序内置的常用标石断面图生成,而标石全景照片和标石面照片,调用手机摄像机进行拍摄,考虑到照片像素高,大多数手机照片都是5~10 M,耗费储存空间,选择对照片进行压缩后保存在手机中。因此,图片数据是保存在手机SD卡中,数据库仅保存其路径,用以关联图片数据。
2.6 控制点之记的规范输出点之记作为记录文件,具有统一的规范和标准,其填写遵循一定的模板,同时点之记作为记录控制点信息的重要测绘资料,最终生成电子文档或纸质文档予以保存。JXL.jar是通过Java操作Excel表格的工具类库,它可以生成Excel的标准格式,支持字符串、数字、日期操作,能够修饰单元格属性,支持图像和图表的操作。利用该工具类库,我们将录入数据库的信息按照标准的点之记的格式,导出为.xls的Excel表格文件保存在手机中。系统提供了按工程项目批量导出数据和自选取控制点数据导出的数据输出方式,如图 4所示。
![]() |
| 图 4 统一格式输出 Figure 4 Unified Output Format |
3 结束语
控制点是测绘工作空间位置的信息基准,在工程设计、施工以及运行管理等方面都发挥了重要的作用。同时,随着Android平台二次开发技术的飞速发展和基于Android终端软件应用的普及,数据采集的作业方式也发生着变化,嵌入式操作系统和移动智能终端硬件的发展,使基于移动终端的数据采集系统逐渐成为一种趋势,本文结合了传统的点之记绘制和Android平台,实现了在测量现场方便准确地获取和编辑点之记信息,有效地减少了内业处理工作,提高了数据采集的效率和精度。
| [1] | 吴建锋. 测量控制点数据管理系统开发与研究[J]. 大众科技, 2008, (7): 50–51 |
| [2] |
陈亦欢. 基于Android的智能几何教育平台[D]. 广州: 华南理工大学, 2013 |
| [3] |
柳婷. 基于Android手机地图服务系统的设计与实现[D]. 北京: 北京邮电大学, 2013 |
| [4] | 王柯, 马宏斌. 一种基于Android平台数据采集系统的设计与实现[J]. 测绘与空间地理信息, 2014, (10): 29–32 DOI: 10.3969/j.issn.1672-5867.2014.10.009 |
| [5] |
孙晓宇. Android手机界面管理系统的设计与实现[D]. 北京: 北京邮电大学, 2009 |
| [6] | 胡荣明, 陈晓娣, 陈红. 基于Web GIS的点之记可视化研究[J]. 西北大学学报 (自然科学版), 2011, 41(4): 689–692 |
| [7] | 覃婕, 韦波, 黄俊华. Java手机地图服务系统研究与实现[J]. 地理空间信息, 2008, 6(6): 73–76 |
| [8] | 李乐林, 宋炜杰, 郭程方. 基于Android手机的移动测量软件设计与开发[J]. 测绘地理信息, 2015, 40(4): 35–37 |
2017, Vol. 42





