基于Android的CGSsafety系统智能终端软件研发
2021-09-27崔芳姿李秋辰单家杨郑宝锋
崔芳姿,曹 杨,李秋辰,单家杨,郑宝锋,2*
(1.中国地质调查局 水文地质环境地质调查中心,河北 保定 071051;2.中国地质大学(武汉)国家地理 信息系统工程技术研究中心,湖北 武汉 430074)
地质调查工作点多、面广、线长,作业地点大多在人烟稀少、交通不便、气象条件复杂、生态环境恶劣的高原、深山、沙漠、海洋等艰险边远地区[1-3]。高寒缺氧、高温缺水、道路交通和通信条件差等不利因素时刻威胁着地质调查工作者的生命财产安全,从而影响了野外地质调查工作的顺利开展[4-7]。特别是我国西部的青藏高原地区,平均海拔在4 000 m以上,属于生命禁区,该地区无论是自然条件、生存条件还是工作条件,均给野外地质调查工作的开展带来了难以想象的困难,给野外地质调查工作者的生命财产安全带来巨大的威胁[8-10]。
针对野外地质调查艰苦艰险的生存、工作条件,利用计算机技术、网络与卫星通信技术、北斗卫星与GPS定位技术、GIS电子地图技术等现代技术建立了地质调查安全生产管理保障(CGSsafety)系统[11-13]。为保障CGSsafety系统在实际工作中的应用效果,本文研发了与之配套的智能终端软件,通过该软件可随时随地开展与CGSsafety系统相关的工作。CGSsafety系统智能终端软件是中国地质调查局安全生产管理保障系统的组成部分之一,是地质调查安全生产管理保障服务的延伸。
智能终端软件基于百度地图API、基于位置服务(LBS)、混合开发模式(Hybrid App)等关键技术研发,主要包括签到、工作组管理、通知新闻、环境分析、报警处置、在线培训、地图模块等功能,可有效提高地质调查安全生产管理和保障工作的效率,实现了对野外地质调查作业人员、车辆、船舶、飞机的实时监控以及与作业人员的实时互动,极大地提高了野外地质调查安全保障水平和突发事件的应急处置能力,是保障野外地质调查工作者生命财产安全和地质调查工作顺利进行的需要。
1 关键技术
1.1 百度地图API
百度地图API是由百度公司发行的基于百度地图数据服务的免费应用接口,兼容Web开发、移动端开发等多种开发系统和平台。可供Android系统采用的SDK工具主要包括地图、定位、鹰眼轨迹、导航、全景、AR识别等。通过调用SDK接口,可访问百度地图服务和数据,在移动终端实现地图展示和基本操作、定位、POI检索、地理编码、离线地图、鹰眼轨迹等多种地图服务,构建功能丰富、交互性强的地图应用类程序[14-15]。
百度地图Android定位SDK提供了GPS、基站、WiFi、地磁、蓝牙、传感器等多种定位方式,适用于室内、室外多种定位场景,具有定位精度高、覆盖率广、网络定位请求流量小、定位速度快等特点。百度地图Android定位各种SDK定位方式的优缺点如表1所示,可以看出,在有网络的条件下,智能终端软件优先利用WiFi和基站定位方式,获得当前地点的经纬度数据,并实时通过无线网络上传到中心服务器;在无网络的条件下,智能终端软件利用GPS定位方式获得当前地点的经纬度数据,并保存在本地,待有网络时自动上传到中心服务器。在智能终端能正常链接网络的情况下,利用Android定位SDK不仅可快速精准地获得经纬度信息,而且可获得当前地点的地址信息、位置描述信息、周边POI信息等。
表1 百度地图Android定位SDK定位方式
1.2 LBS
LBS通过一定的技术获取物体的地理位置,并据此显示相应的信息内容。在移动环境下,LBS利用定位设备获取移动终端用户的位置信息经纬度坐标,并在电子地图平台的支持下,为移动对象提供定位信息、地理环境信息等空间地理位置的信息服务[16]。
LBS根据智能终端的地理位置、服务要求进行空间采集分析,对用户当前位置或选定位置的自然地理、地质、人文、交通等信息加以分析,结果以文本或地图的形式推送到智能终端,以满足用户需求,帮助用户更好的解决问题。智能终端软件LBS的环境分析模块包括位置点的当前地址、地貌类型、地表土壤、人口密度、土地利用、最近道路距离、附近居民地数等信息,便于野外工作人员随时随地定位查看工作区域周围的地理要素、人文环境等条件,进而根据相关信息做出野外工作安排、交通工具选择等决策。LBS为地质调查工作提供了智能化信息化助力、决策支持和安全保障。
1.3 Hybrid App
目前,主流的智能终端开发技术包括原生模式(Native App)、网页应用模式(Web App)和Native+ Web的Hybrid App。Native App针对iOS或Android等特定操作系统开发移动设备上运行的应用程序;Web App利用HTML、CSS和Javascript等Web技术开发在移动终端浏览器中运行的应用程序;Hybrid App利用原生程序语言和Web程序语言共同开发,与Native App相比,其有利于降低开发成本和难度,其中的Web页面不受平台限制可随时动态修改更新,与Web App相比,其在用户交互体验方面具有明显优势。
智能终端软件采用Hybrid多界面混合开发形 式[17],主体为Native App;工作组管理、通知新闻、在线培训等部分功能模块采用Web技术开发,HTML5+ CSS3搭建前端界面,Javascript完成逻辑部分。Web页面存储于服务器端,由Android平台内嵌的Web访问组件WebView作为容器直接承载,独立完成界面展示和功能实现,实现Native页面与Web页面的交互,并提供JS、Java相互通信调用的接口。
2 智能终端软件建设
CGSsafety系统智能终端软件适用于版本不低于Android 4.4的Android操作系统。客户端采用MVC分层架构,包括模型(Model)、视图(View)和控制器(Controller)3层,实现了业务逻辑与视图界面的分离,降低了各模块之间的耦合度[18-19]。集成开发环境由Android集成开发工具Android Studio3.2.1、Android程序开发工具包Android SDK、Java语言开发工具包Java SE Development Kit组成,主要开发语言为Java,部分界面由Web编程语言实现,数据库采用SQLSever,利用快速开发框架xUtils辅助开发。通过JSON格式的数据接口实现智能终端软件与CGSsafety系统的交互。
2.1 智能终端软件系统架构和功能模块
智能终端软件架构如图1所示,软件架构分为Model、View和Controller三个层面,其中Model层为与数据库交互的数据资源和数据模型,负责数据处理的相关操作;View层为界面与用户交互的数据区,负责收集展示数据;Controller层在收到请求后,先调用Model层与数据库交互获取数据,再将数据返回给View层(用户),负责接收数据和逻辑处理。
用户通过浏览器发送请求到View层,Controller层收到请求后,分发调用Model层进行数据库查询(若查询失败则新建),然后Model层将数据库查询到的数据返回给Controller层,Controller层再将其返回给View层,最后View层把数据信息显示给用户。
智能终端软件主要界面设计如图2所示,智能终端软件的功能模块如表2所示。
图2 智能终端软件主要界面设计
2.2 智能终端软件功能模块的实现
智能终端软件首页界面如图3所示。
图3 智能终端软件首页界面
1)签到、报平安模块。该模块是野外报平安的一种辅助支撑手段,其查询统计功能可让每位野外工作人员及时了解自己野外安全执行情况。同时,签到传回来的经纬度位置信息为中心管理人员提供了野外工作区域分布数据,中心管理人员还可根据签到人数统计每日进行野外地质调查工作的人员数量。
2)工作组管理模块。该模块支持野外工作人员进行在线办公,包括出队填报、出队审批、信息调整、延期收队和收队注销等功能。该功能是安全保障系统的延伸,实现了与安全保障系统一致的填报和审批功能,有效解决了野外工作中由工作组人员、车辆、飞机和轮船流动所引发的工作组信息变动问题,为提升安全生产精准化管理提供了技术支撑。
3)通知新闻模块。该模块包括新闻通知、学习课件、法律法规、预警信息等功能,负责将最新的动态传达给用户。
4)环境分析模块。智能终端软件继承了CGSsafety系统的主要功能,但不仅限于安全保障功能。为了更好地发挥智能终端软件的作用,将其与野外地质调查工作相结合,辅助野外地质调查工作,开发了测点工具、环境分析、野外运动轨迹等重要实用的辅助工具。测点工具功能支持野外工作人员通过实时定位记录野外特殊地形地貌的经纬度位置,并以文字、图像、音频、视频等多种形式保存到智能终端,记录的信息资料可随时浏览、修改,提高了野外勘查过程中信息采集工作的准确性和便利程度;环境分析功能用于查看、分析、收藏地图上任意选定的位置点或实时定位地点的地理环境、安全保障条件的相关情况,包括当前地址、地貌类型、地表土壤、人口密度、土地利用、最近道路距离、附近居民地数等信息要素;野外运动轨迹功能用于记录人员、车辆、飞机和轮船一段时间内的运动轨迹。
5)接警处置模块。报警人和单位安全员拥有解除报警记录的权限,可第一时间更新预警的状态。
6)在线培训模块。目前该模块包含200余个与安全生产相关的视频,涉及野外安全、交通安全、消防安全、安全纪录片、安全保障系统使用教程等多个类别,支持用户在线观看、自主学习安全培训视频课件,系统可自动记录学习次数和学习时长,为野外出队前例行的安全培训教育提供便利高效的新方式。
7)地图模块。该模块可实现地图展示、地图缩放、底图切换等基本操作,以及实时定位、轨迹记录查询等一系列重要功能。地图上能显示24 h内野外工作人员使用北斗或手机的报位签到信息,可查询绑定北斗号的人员、车辆、飞机和轮船一段时间内的野外运动轨迹,便于安全管理员对野外工作组的状态、位置、轨迹、所属工作组、北斗短信等信息进行实时监控。利用智能终端软件可获得北斗、手机和天通一号卫星移动终端的位置,一个平台解决了所有设备的数据融合。目前,地质调查局局属单位利用CGSsafety系统监控人、车,利用广海局船舶监控安全保障系统监控船,利用航遥中心北斗卫星监控系统监控飞机,通过智能终端软件实现了人、车、飞机、船的集成监控,实现了海陆空安全保障一体化。
8)安全员管理模块。该模块仅对具有安全员权限的用户开放,单位安全员可查询北斗终端最新的10条报警、报平安和短信记录,可进行出队汇总查询、数据统计、野外监察,可修改人员车辆绑定的北斗卡号。
9)我的模块。该模块负责管理个人基本信息、基本设置、系统设置等。
3 结 语
基于Android的CGSsafety系统智能终端软件采用Hybrid App模式,基于百度地图API、LBS等关键技术研发。该智能终端软件的研发与应用为地质调查安全生产管理提供了信息化、网络化、标准化、科学化的管理手段。系统智能终端软件测试运行稳定,可实现对野外地质调查作业人员、车辆、船舶、飞机的实时监控以及与作业人员的实时互动。CGSsafety系统智能终端软件的推广应用,将提高地质调查作业管理和安全保障水平以及突发事件的应急救援能力,对保障地质调查工作者生命财产安全和地质调查工作顺利进行具有重大意义。