基于安卓系统的道路养护信息采集系统研究
2015-02-10王俊骅
唐 棠 王俊骅
(同济大学道路与交通工程教育部重点实验室 上海 201804)
改革开放以来我国的公路建设蓬勃发展,截止2011年底,全国公路总里程达到410.64万km,其中高速公路规模达到8.49万km[1]。随着公路建设不断发展,道路养护所需的投入也越来越大。公路建设管理正在逐渐由初期的建设为主养护为辅,向建设养护并重发展。但是大规模的公路养护仅靠以前的人工管理方法已经不能保证公路发挥其应有的等级功能,公路养护需要向简单化、智能化、便捷化发展,以保证道路养护措施的科学合理。
在此背景之下,本文提出并实现了基于当今流行的Android操作系统的道路养护信息采集系统。这一系统的实现,不仅简化了养护信息采集过程,也简化了养护信息的后期录入过程。格式化录入的养护信息有利于养护信息的批量处理,对于简化繁重的道路养护信息处理工作具有重要的意义。
1 系统构架
1.1 系统工作原理
系统采用离线工作的方式,养护信息采集者运用手机系统界面离线记录养护信息。外业采集的信息以数据表的形式存储在系统的轻量化数据库SQLite3中。巡查工作获得的数据可以按照表格的形式导出成Excel工作簿,将手机与电脑连接便可将数据导入电脑端处理。初次使用系统需初始化导入GPS桩号、道路编号信息等路段信息,实现某些特征字段的自动化输入。系统外业工作原理见图1,内业数据导入见图2。
图1 系统外业工作原理示意图
图2 系统内业数据输出示意图
1.2 系统功能模块分类及设计
运用功能模块化的知识将系统划分为几个具有特定功能的模块。模块划分示意图见图3,其中负责完成信息输入的为路面病害信息输入模块、路基病害输入模块、沿线设施维护模块、桥梁经常检查模块、隧道经常检查模块和涵洞经常检查模块。照片管理模块和信息与查询模块负责后期的养护信息修改与查看。最后3个模块,即数据库存储模块、GPS桩号转换模块和数据库输出模块是用户不可见的。设计中将它们封装在不同的类中,通过类函数来调用模块的功能。3个模块作为前面8个模块的支撑而设计。例如路面病害输入模块中的桩号获取功能,其桩号的计算获取过程需依托GPS桩号转换模块。
图3 系统模块划分示意图
2 数据库设计
根据养护信息采集对象的不同,采集的数据也不相同。针对不同的养护信息采集模块需要分别进行数据库设计。
2.1 道路病害数据
道路病害分为3个大类,分别为路面病害、路基病害和沿线设施维护[2]。
(1)路面病害。我国高等级公路大部分为沥青路面,所以本设计以沥青路面的病害为对象设计。沥青路面病害可归纳为11种,分别为:龟裂、块状裂缝、纵向裂缝、横向裂缝、坑槽、松散、沉陷、车辙、波浪拥包、泛油、修补。针对每种不同的病害,对其进行描述的属性也会更改。例如龟裂的损坏程度为轻、重、中3种,块状裂缝的损坏程度为轻、重2种。
(2)路基病害。路基病害归纳为8种,分别为:路肩边沟不洁、路肩损坏、边坡坍塌、水毁冲沟、路基构造物损坏、路缘石缺损、路基沉降、排水系统淤塞。
(3)沿线设施维护。沿线设施维护归纳为5种,分别为:防护设施缺损、隔离栅损坏、标志缺损、标线缺损、绿化管护不善。
以上3种病害类型中1条病害记录所需要包含的属性主要为以下几点:路线名称、调查方向、调查时间、调查人员、桩号、路面宽度、调查内容、损坏程度、损坏数量、单位、病害原因、病害位置、病害是否突出、是否罩面等。
2.2 桥梁病害数据
桥梁经常检查所需要完成的项目共有19种[3],分别为:翼墙、耳墙、锥坡、护坡、桥台、桥墩、基础、地基冲刷、支座、上部结构异常变形、桥与路连接、伸缩缝、桥面铺装、人行道、缘石、栏杆、护栏、标志、标线、排水设施、照明系统、桥面清洁、调治构造物、(其他)。
桥梁经常检查中1项项目所具有的属性为:管理单位、路线编码、路线名称、桥位桩号、桥梁编码、桥梁名称、养护单位、负责人、记录人、检查日期、部件名称、缺损类型、缺损范围、保养措施意见。
2.3 隧道、涵洞病害数据
隧道经常检查的项目共有8种[4],分别为:洞口、洞门、衬砌、路面、检修道、排水设施、吊顶、内装。
隧道经常检查中1项项目所具有的属性为:隧道名称、左/右洞、隧道编码、路线名称、路线编码、养护机构、检查日期、天气状况、检查人、记录人、里程桩号、项目名称、检查内容、状态描述、判定结论。
涵洞经常检查所需要完成的项目共有6种,分别为:进水口、出水口、涵身两侧、涵身顶部、涵底铺砌、涵附近填土。
涵洞经常检查中1项项目所具有的属性为:线路名称、路线编号、检查单位、检查人、记录人、检查时间、涵洞桩号、病害部位、病害名称、病害数量、病害单位、病害描述、病害发展状况。
3 道路养护信息采集系统实现
3.1 系统开发环境
本信息采集系统基于Android手机系统开发。开发工具采用的是谷歌公司免费提供的ADT套件。Google公司为简化环境的搭建操作,在下载的包中融合了Eclipse和ADT,开发者无需配置,解压缩后下载需要的Platform后配置好SDK,运行Eclipse即可开始创建Android应用程序[5]。
3.2 系统实现关键技术
系统开发过程涉及许多关键技术,其中数据库存储、GPS定位并自动转换桩号等是实现数据录入和简化录入操作的重要技术,而数据库按规则导出系统规定的excel数据表则是实现外业采集数据导入电脑实现电脑端自动处理,完成自动评价的关键技术。
安卓中已经封装了对SQLite3数据库的支持,可以通过继承SQLiteOpenHelper类来实现数据库更新、建立数据表等操作[6]。实现数据库存储首先需要建立业务存储辅助类RoadMaintenaceDbAdapter,然后继承SQLiteOpenHelper并实现相关方法,之后对RoadMaintenaceDbAdapter类设置初始化、打开数据库和关闭数据库的方法,最后定义供外部调用的数据库操作函数。
在安卓系统中可通过LocationManager系统服务获得设备所在位置的经纬度、海拔、速度等信息。但是如何将经纬度信息转换为桩号等道路相关信息则需要一定的算法。通常的想法是建立桩号与GPS位置信息对应的表格,通过遍历来实现桩号的匹配。但是当桩号数据量比较大时,遍历数据库将会花费比较长的时间。为提高检索效率,系统利用桩号连续的特点,将桩号值按顺序读入队列中,并根据位置对队列更新。队列更新算法能减少查找时间,加快GPS桩号转换速度。
数据库存储的数据如何转换为Excel工作簿是实现手机采集数据与电脑处理软件对接的关键技术。数据库导出excel模块需要完成将外业采集数据库按照电脑端软件可识别的信息结构导出,以实现电脑对采集数据的自动处理得到评价结果。实现这一功能需要使用Java操作Excel的工具类库jxl.jar。Java开发人员可以通过它读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。系统通过数据库的查询命令获得的信息可以利用jxl.jar写入Excel工作簿中。
4 道路养护信息采集系统应用
道路养护信息采集系统可用于路面、路基、桥梁等的日常巡查信息录入,下面以路面病害输入为例对系统功能进行说明。
将APP安装到手机后,点击图标进入首页。首页以九宫格设计,实现对不同功能的导航。首页设计见图4。
图4 信息采集系统首页功能导航布局
点击路面病害图标,进入输入界面,见图5。按照顺序,依次完成路线名称、调查方向等信息的录入。其中调查时间和桩号可以通过输入框旁的按钮自动获取。输入完成后可点击本地存储按钮,存储在本地数据库中。
图5 路面病害输入界面
5 结语
本系统以现今流行的Android系统为基础,针对目前道路养护信息采集工作以人工为主,工作效率低下的现状,开发了适合于道路养护信息采集工作的Android软件。软件的开发设计结合Android设备的功能加入了GPS定位获取桩号、病害照片拍摄关联、自动获取时间等功能,加快了信息输入速度,也对传统记录信息加以补充。Android手机的普及,使得软件的推广不需要额外的硬件投入,系统在道路养护信息采集中具有广阔的应用前景。
[1] 中华人民共和国国家统计局.中国统计年鉴2012:汉英对照[M].北京:中国统计出版社,2012.
[2] JTG H20-2007公路技术状况评定标准[S].北京:人民交通出版社,2007.
[3] JTG H11-2004公路桥涵养护规范[S].北京:人民交通出版社,2004.
[4] JTG H12-2003公路隧道养护技术规范[S].北京:人民交通出版社,2003.
[5] 吴亚峰,于复兴.Android应用开发完全自学手册[M].北京:人民邮电出版社,2012.
[6] 赵启朋.Android典型技术模块开发详解[M].北京:中国铁道出版社,2012.