基于Android平台的市政维护管理APP

2020-05-25 02:30周星辰刘家辉史梦娅陈彦儒牛云云
软件导刊 2020年2期

周星辰 刘家辉 史梦娅 陈彦儒 牛云云

摘 要:市政維护是城市管理问题中的难题。长期以来,市民与市政维护部门缺乏沟通途径,无形中增加了市政维护部门服务市民的难度。为此,开发了一款以Java语言编写、基于Android平台的新型市政维护管理APP。该系统使用SQLite和MySQL数据库进行数据存储,根据用户上传维修点自动分配维修人员,并利用集成的环信即时通讯接口实现维护部门和上报市民的及时沟通。任务完成后,报修市民可以对维修服务打分,系统将维修记录上传到服务器端保存。该APP已应用于中国地质大学(北京)校内维护管理工作。实践证明,该APP能够较好地满足实际工作需要,提高维护部门工作效率和群众满意度。

关键词:Android;市政维护;SQLite;MySQL;百度地图;GIS

DOI:10. 11907/rjdk. 191488 开放科学(资源服务)标识码(OSID):

中图分类号:TP319文献标识码:A 文章编号:1672-7800(2020)002-0048-05

英标:Municipal Maintenance Management APP Based on Android Platform

英作:ZHOU Xing-chen, LIU Jia-hui, SHI Meng-ya, CHEN Yan-ru, NIU Yun-yun

英单:(School of Information Engineering, China University of Geosciences, Beijing 100083, China)

Abstract: Municipal maintenance is a tough task in urban management. For a long time, the lack of communication between the citizens and the municipal maintenance department has virtually increased the difficulty for the municipal maintenance department to serve the citizens. A new municipal maintenance management APP was developed based on the Android platform in Java. The system uses SQLite and MySQL database for data storage, and can automatically assign maintenance personnel according to the users' uploading service point, and use the integrated ring-new instant messaging interface to achieve timely communication between the maintenance department and the reporting citizen. After the task is completed, the repairing public can score the repair service, and the system uploads the maintenance record to the server for storage. The APP has been applied to the internal maintenance management of China University of Geosciences (Beijing). Practice has proved that the APP can better meet the needs of actual work and improve the work efficiency and mass satisfaction of the maintenance department.

Key Words: Android; municipal maintenance; SQLite; MySQL; BaiduMap; GIS

0 引言

市政维护工作是城市管理中的难题。长期以来,市政维护任务存在数据更新慢、审批效率低、检查准确性差、信息共享困难等问题[1-3],给城市管理者和普通市民带来不便。市民只能通过有限的几种途径,如打电话、写信和上门等方式,将维护需求上报给市政维护部门,无形中增加了维护工作难度。随着城市规模扩大、人口规模增长和市民对生活质量要求的提高,市政维护部门也承担着与日俱增的压力。因此,只有提高市政维护工作的高效化、人性化和便捷化水平,市政维护部门才能够更好地为城市提供服务。

截至2018年6月,我国手机网民规模达到7.88亿,网民使用手机上网的比例达到98.3%[4],同时智能手机有强融合性和高便携性的特性[5],因此基于智能手机的应用软件受到软件开发人员重视。尽管移动端软件数量不断增加,但随着产业信息化的发展,市场对于专业移动端软件的需求依然持续增长。

近年来,将智能手机与城市管理相结合的城市管理理念受到国内外城市管理研究者的广泛关注[6-9]。我国在该领域进展显著,一些城市已经不同程度地实现了智能手机与城市管理的结合[10-13],也有成功将智能手机应用在城市管理多个方面的实例,如:于斌等[14]开发了基于云平台的手机智能停车场查询系统;李昆[15]研究基于Android平台的智慧城市客户端,用于城市综合管理;喻宏进等[16]设计了基于云平台的城市照明设备分布式综合管理系统等。在市政维护领域,国内已经开发了多款APP,用于鼓励与帮助市民参与市政维护建设工作[17-20]。这些软件内容各有特色,服务的城市背景也各不相同,但不同程度上均存在一些缺点,如:潘国富等[17]设计的市政管理系统不支持维修人员与普通市民的即时通讯;赵国忠等[18]设计的市政维护APP不支持普通市民参与市政维护工作,而且维护内容仅包括检测设施病害;黄一峰等[19]设计的城市管理APP不支持上传视频等。当前市面上主要的操作系统包括IOS操作系统和Android操作系统。目前,Android操作系统市场占有率已经达到80%以上。为了更好满足市民上报维护需求,提高市政维护工作效率,本文采用Android Studio作为开发工具,开发一款基于Android平台的市政维护管理APP,其主要创新点包括:

(1)完善的数据库设计。该APP采用SQLite数据库与MySQL数据库,可完整保存维修点、维修过程和维修结果的详细信息,为日后市政维护统计工作提供详实的资料,极大方便了市政维护统计与管理工作。

(2)丰富的沟通手段。该APP为维修人员和报修人员提供多种沟通手段,较一些现有市政维护APP更加丰富,能够极大方便维修人员和报修人员沟通交流,进而显著改善维修效率和维修结果,提高市民满意度。

(3)便捷的地图操作方式。该APP通过调用百度地图API接口,可为用户提供清晰准确的地图界面,方便用户使用。同时,维修点位置在地图界面进行标注,并为维修人员提供路径导航,极大便利维修人员前往维修点进行维修,提高维修效率。

1 系统设计思想

为了实现数据及时上传,满足系统功能,本文提出的市政维护管理APP主要分为Android客户端和服务器端。客户端采用SQLite管理数据,服务器端采用MySQL管理数据。

本系统目标功能分为4点:维修点上传功能、维修点展示功能、维修点评论功能、维修者与上传者交互功能。

在借鉴市面上现有APP的基础上,同时通过调查,了解当前市政维护需求,进而实现更完善的功能、更便捷的操作和更人性化的界面。

2 系统开发与实现

2.1 系统功能设计

经过功能划分,APP主要包含以下六大功能:①登录和注册功能;②上传文字、图片等维修信息功能;③地图、定位和导航功能;④显示与查看维修点功能;⑤上传评论与查看评论功能;⑥即时通讯功能。

2.2 系统界面设计

本文提出的市政维护管理APP采用fragment布局,将界面分成多个功能区域。

APP包括两种目标用户:维修人员和普通用户,并为两种用户提供不同界面:维修界面和用户界面。进入APP后首先进行身份选择,其中,维修人员账号由市政维护公司统一注册和发放,因此维修人员无需注册即可直接登录。普通用户首次使用需注册账号再登录。

维修界面左侧设置侧滑栏,上部展示维修者姓名、技能和所属公司,中部为“积分”、“排名”、“消息中心”、“维修相关”、“我的好友”和“帮助和反馈”功能区,下部为“设置”和“退出”功能区。主界面上部可以选择查看新任务和已完成维修任务,下部展示任务信息,点击后展示详细信息。

用户界面下方设置功能区栏,包含“首页”、“地图”、“报警记录”和“我的”4种功能区。首页通过访问天气API接口获取今日天气,并显示对应图片。图片下方信息,通过http方式的get方法获取服务器端中存储的维修信息。“地图”功能区展示地图信息,并可以通过点击编辑按钮上传维修申请信息,“报警记录”功能区展示已上传的维修申请信息;“我的”功能区上部包含用户名、手机号、报警信息和报警等级信息;中部包含“积分”、“评价”、“消息中心”、“帮助和反馈”和“设置”5个功能区。

2.3 系统数据库设计

客户端数据库模型如图1所示,其中,record为报警记录表,用于存储用户报警记录信息,其产生的信息对应一个维修点,保存内容包括经纬度、上报时间、上报人、维修工等信息;comment为评论表,用于存储用户评论信息,其产生的信息对应一条评论,保存内容包括经纬度、评论时间、内容、评分等;repair为维修表,用于存储维修工处理的维修点信息,其产生的信息对应一个维修点,保存内容包括经纬度、完成时间、维修类型等。三者均以ID为主键,经纬度作为区分,即一个经纬度对应一个维修点。

2.4 系统功能实现

2.4.1 登录与注册功能

本文提出的APP采用环信提供的第三方接口,实现上报用户和维修人员的即时通信,并用于辅助实现登录和注册功能。

注册时,用户将注册手机号输入到指定区域内,点击獲取验证码按钮,服务器端产生验证码,发送到用户提供号码的手机上,由用户输入验证码并点击注册按钮。当验证码与服务器端一致时,服务器将用户信息写入数据库,然后通过rest API将用户手机号和密码写入环信数据库,实现用户注册过程。注册时,所有用户信息保存在服务器端,环信端仅保存用户手机号和密码。

登录时,用户和维修工输入用户名和密码,点击登录按钮,将两个数据通过http方式的post方法传送到服务器端,通过数据库,查询目标用户是否存在。如果存在,则读取用户在环信的昵称信息,通过rest API将信息传送到环信网站,实现登陆过程。登录完成后,APP通过SharedPreferences将登录信息存储在本地,用于判断登录状态。

2.4.2 维修信息功能上传

APP采用Struts2框架实现文字、图片以及维修类型和坐标信息的上传。维修信息到达服务器端后,服务器以缓存的方式接收图片文件并存放到指定位置,随后将这些信息写入对应的数据库表中存放维修信息。

上传图片时,考虑到Android手机照相时,相片可能达到数兆大小,通过4G网络上传相片到服务器时可能出现超时。因此,APP采用压缩算法将图片压缩至数百KB,但清晰度损失较低。图片压缩方式一般包括3种:尺寸压缩、质量压缩和通过JNI调用libjpeg库进行压缩。本文APP综合采用这3种方式,确保图片压缩的同时获得最佳清晰度。

2.4.3 地图、定位和导航功能

本文提出的APP采用百度地图API接口,实例化BaiduMap对象显示地图。在用户界面,用户进入“地图”功能区后,通过定位函数进行定位,然后访问服务器,将距离自己一定范围内的维修点坐标取到客户端,随后在地图上通过addOverlay()函数添加覆盖物。点击覆盖物,会产生一个采用AndroidSlidingUpPanel控件实现、可向上滑动的滑动面板。通过逆地理编码技术,将坐标信息上传到百度地图服务器端进行逆地理编码,产生POI列表。选取该POI列表中距离最近的一个,获得覆盖物对应的位置信息和与用户距离,并由该滑动面板显示。

在维修界面,当维修工接到维修任务时,维修工可以进入任务详情页,点击导航按钮,APP将维修工实时位置作为起点,维修地点作为终点,传入导航界面。在导航界面,有3个导航方式,分别是骑行导航、步行导航和AR步行导航。维修工可以选择任意一种方式进行导航。

2.4.4 显示与查看维修点功能

显示与查看维修点功能通过ListView和SQLite实现。在用户界面的“报警记录”功能区,客户端从服务器端查询对应信息,并通过SQLite建立本地数据库,随后将存储在本地的信息显示在ListView中,用户点击即可查看维修点相关信息。同时,用户也可在地图界面点击地图上的覆盖物以查看维修点相关信息。在维修界面,与报警记录功能区类似,维修工点击即可查看维修点信息。

2.4.5 上传评论与查看评论功能

上传评论与上传维修点信息方法类似,均通过Struts2框架实现相关信息上传。查看评论功能通过ListView和SQLite实现。评论时,用户进行紧急程度评分、拍照以及文字评论,APP将评论信息以及照片上传到服务器端。显示信息时,客户端从服务器端查询对应信息,并使用SQLite建本地数据库,随后将存储在本地的信息显示在ListView中。用户和维修工均可通过点击查看相关评论。

2.4.6 即时通讯功能

即时通讯功能通过调用较为成熟的环信接口实现,聊天界面则使用环信提供的easeUI库,并进行适当删减和扩充,以适应实际情况。

3 系统测试

3.1 登录和注册功能测试

用户打开APP后,首先需选择用户身份。如果选择普通用户,则允许进行新用戶注册。注册后的普通用户可以直接登录。维修人员必须先由市政维护公司完成注册,才可直接登录。

具体测试流程如下:首先,在主界面选择身份。测试登录功能,点击“普通用户”,进入登录界面,输入账号和密码,之后点击“登录”按钮进行登录。维修人员登录流程与普通人员相同。之后测试注册功能,点击“新用户注册”,输入手机号,点击“获取验证码”获得临时验证码再输入,之后填入密码并确认,点击“注册”按钮进行注册。

3.2 上传文字、图片和视频功能测试

普通用户可以进行维护点上传。上传内容包括文字、图片和视频。上传之后可以在首页中的上传维修点展示界面看到已经上传的维修点。

具体测试流程如下:点击“地图”,系统将自动定位用户当前位置;点击左下角“编辑”,在文字输入框输入维护点信息,并点击“拍照上传”,拍摄照片或视频;点击“发送”后,点击“首页”,可以看到已经上传的维修点。

3.3 地图、定位和导航功能测试

用户可以使用地图功能进行定位,并可查看到自己所在位置附近一定距离内的维修点。维修人员可使用地图功能查看目标维修点所处位置,并进行导航。

具体测试流程如下:使用维修人员账号登录,点击“地图”,进入地图界面开始定位,同时展示附近维修点和目标维修点;点击目标维修点,再点击“步行导航”,系统将展示最佳路线。

3.4 显示与查看维修点功能测试

用户可查看维修点信息。维修人员可查看新的维修任务和已完成的维修任务。

具体测试流程如下:使用普通用户账号登录,上传一个维修点;使用维修人员账号登录,点击“新任务”,再点击第一条任务,了解该任务信息;点击“已完成”,使任务进入该区域。

3.5 上传评论与查看评论功能测试

用户可以选择附近维修点进行评论,并进行紧急程度评分。

具体测试流程如下:使用普通人员账号登录,点击“地图”,点击附近维修点,再点击星星进行评分;点击文本输入框,输入评论内容,再点击“发表”,点击“返回”,即可实现评论。点击“评论”可以查看详细内容。

3.6 即时通讯功能测试

普通用户和维修人员可以使用即时通讯功能实现单独交流,包括发送文字、表情、语音、图片和位置等信息进行交流。

具体测试流程如下:分别使用普通人员和维修人员账号登录,点击同一个维修任务,点击“即时通讯”,进入聊天;点击“表情”,发送表情;点击“语音”,录入语音并发送;点击加号,可以点击“拍照”、“图片”和“位置”,分别用来发送照片、图片与所在位置信息。

3.7 其它界面测试

信息界面内容丰富,包括积分、评价、消息和设置等功能。普通用户可以上传有效的维修点获取积分,维修人员可以通过完成维修服务得到用户评价并获取积分。

4 结语

实际生活中,电话沟通等传统方式申请市政维护服务存在明显局限性。因此,为方便市民广泛参与市政维护工作,本文采用Java语言开发了一款基于Android平台的市政维护管理APP。该APP首先在手机客户端利用SQLite数据库保存市民上传的维修点,随后上传数据到服务器端,使用MySQL数据库保存数据,并在集成的百度地图上进行显示。系统随后通知市政维护部门派遣专业维修人员进行维护工作,并利用集成的环信即时通讯接口,实现维护部门和上报市民的及时沟通。任务完成后,上报市民可以对维修服务进行评分,系统将维修记录上传到服务器端进行保存,从而完成了整个维护工作。

相对于传统申请市政维护服务方式,该APP集成了报修点快速上传、报修点地图显示、市民评价、及时通知到市政维护部门、导航、维修人员与上报市民及时沟通、服务评价等功能,具有方便性、高效性和易操作性等特点,能够显著降低市民申请市政维护服务的难度,提高市政维护工作效率和质量,进而提高市民满意度。该APP已应用于中国地质大学(北京)校内维护管理。经问卷调查证明,该APP能够很好地满足日常管理需要,提高了维护部门工作效率和群众满意度。因此,本文开发的市政维护管理APP在实际市政维护管理工作中具有一定的使用价值。在系统开发后期,还需实现更多系统功能,以满足市政维护工作具体功能需求。

参考文献:

[1] 刘涛,彭清山,张淼. 基于GIS的城市规划管理信息系统的研究[J]. 测绘通报,2011(6):57-59.

[2] 严荣华,牛明光,许礼林,等. Office GIS在城市规划管理中的应用[J]. 测绘通报,2005(10):64-67.

[3] 谢世杰. 基于Internet的城市规划管理信息系统的研究[J]. 测绘通报,2000(9):15-17.

[4] 中国互联网络信息中心. 第42次《中国互联网络发展状况统计报告》[EB/OL]. http://www.cnnic.cn/hlwfzyj/hlwxzbg/hlwtjbg/201808/t20180820_70488.htm.

[5] 刘战雄,宋广文. 智能手机与生活方式变迁及其影响[J]. 科学技术哲学研究,2018(35):111-116.

[6] 郭大林. 从“数字化”到“互联网+”:城市管理的多元共治之道[J]. 求实,2018(6):74-84.

[7] 杨俊宴. 全数字化城市设计的理论范式探索[J]. 国际城市规划,2018(1):7-21.

[8] 韩福生. 泉州市城市管理的数字化与“智慧城市”建设的思考[J]. 现代经济信息,2019(1):486-488.

[9] KEERTIKUMAR B,MAHALANKM S N,BANAKAR R M. APP controlled: cloud service oriented smart city traffic management[C]. Indore:Symposium on Colossal Data Analysis and Networking,2016.

[10] BRANDT T, KETTER W, KOLBE L M, et al. Smart cities and digitized urban management[J]. Business & Information Systems Engineering, 2018(3):193-195.

[11] 蔣晓青. 桂林市数字化城市管理系统[J]. 数字技术与应用, 2018(3):96-98.

[12] 侯宇红. 洛阳市数字化城市管理系统设计与实现[J]. 中国管理信息化, 2016(19):169-171.

[13] 姚金明,郑新奇. 数字化城市管理信息系统建设探讨——以济南市历下区为例[J].  软件导刊,2008(3):18-19.

[14] 于斌,余红珍. 基于云数据平台的手机智能停车场查询系统设计与实现[J]. 软件导刊,2018(17):111-113.

[15] 李昆. 基于Android平台的智慧城市客户端设计与实现[J]. 软件导刊,2019(2):76-78.

[16] 喻宏进,徐源,李朋. 基于云平台的城市照明设备分布式综合管理系统设计[J]. 软件导刊,2015(9):150-152.

[17] 潘国富. 基于GIS的智慧市政管理系统的建设与应用[J]. 市政设施管理,2017(1):56-58.

[18] 赵忠茂. “掌上市政”:市政基础设施营养系统解决方案[J]. 市政技术,2017(5):11.

[19] 黄一峰. 基于城市管理App设计与实现[J]. 计算机产品与流通,2018(2):149-151.

[20] 陈红玉. 移动互联网在城市管理中的运用探索[J]. 青年记者,2014(32):72-73.

(责任编辑:江 艳)