基于地理位置信息的智慧乡镇Android数据采集系统设计与实现

2021-04-22 05:37秦荣波
河南科技 2021年1期
关键词:开发人员户籍乡镇

秦荣波

摘 要:在传统的乡村建设和管理过程中,乡镇工作人员往往要实地到户采集建筑、房屋、户籍、人员、照片以及空间位置信息,工作效率低下。为了有效提升信息采集效率,本文使用ArcGIS SDK for Android开发包作为地理信息支撑,设计开发了智慧乡镇数据采集系统。

关键词:地理位置信息;数据采集;ArcGIS SDK for Android

中图分类号:TP274.2文献标识码:A文章编号:1003-5168(2021)01-0005-04

Abstract: In the traditional rural construction and management process, township staff often collect information from buildings, houses, registered residence, personnel, photos and space location, and work efficiency is low. In order to effectively improve the efficiency of information collection, this paper used ArcGIS SDK for Android development kit as the support of geographic information to design and develop a smart Township data collection system.

Keywords: geographic location information;data collection;ArcGIS SDK for Android

地理信息技术与其他领域有机结合是地理信息发展的方向,其可激发出自身的内在活力。地理信息技术已经广泛服务于国民经济建设各行各业。伴随乡村振兴战略的提出,在智慧小城镇建设中,地理信息技术能够从空间上管理城镇建设等相关信息。同时,随着5G技术的兴起,互联网信息化办公作业在乡镇得以推进。地理信息技术与互联网融合将是智慧小城镇建设的趋势。当前,地理位置信息数据采集移动系统得以应用[1],开发人员可借助第三方公司的移动GIS开发包快速满足APP中的地理相关模块需求[2]。目前开发的此类APP已经应用到校园的数据采集与土地变更调查方面[3-4]。本文依据系统平台功能需求,使用ArcGIS SDK for Android开发包作为地理信息支撑,设计开发了智慧乡镇平台采集系统APP。

1 需求现状

数据采集移动端是智慧乡镇平台项目的重要组成部分。项目已准备有全乡镇影像栅格数据、行政界线shapefile矢量数据。同时,系统开发方已经收到来自乡镇卫生院的户籍人口基本台账,该数据现势性一般,数据库中存在部分人口已经死亡、新出生的小孩不在数据表中的情况,但绝大部分数据可使用。现在需要乡镇工作人员基于室内无人机影像数据识别或通过实际走访方式采集全乡镇建筑房屋数据、户籍数据以及人员属性数据,然后对建筑物和人员进行拍照,以获取照片数据。同时,乡镇办事工作人员一般年龄偏高,对新事物的掌握速度较为缓慢。

2 系统建设分析

乡镇工作人员实地到户采集数据,往往借助纸质表格。首先到所在地点对采集对象进行调查,接著对表格列举项进行填写,实地采集数据结束后,对数据进行整理,才能使数据满足要求。在该过程中,往往面临如下问题。

2.1 信息化作业水平较低

工作人员要想正确或者全面地核实信息,需要参考已有数据。这需要备选一定纸质资料,而乡镇地区居民会有零散居住的情况,挨户采集数据将会增加携带与翻阅资料的不便性。

2.2 数据无空间属性信息

过去采集数据时,更多的是采集对象属性信息,未加入地理坐标,因而缺少空间位置属性信息。采集的数据本身无法定位到地理底图,这不利于整个智慧乡镇平台的建设,无法实现数据的空间直观展示与空间分析。

APP数据采集系统作为基础数据平台,是方便乡镇工作人员录入数据的工具,因此开发设计时需要考虑如下几方面。

2.2.1 易使用性。乡镇工作人员受教育文化水平相对不高,而年轻工作人员较少。因此,系统设计界面应尽量简单,只需要提供简单输入表单。同时,输入数据框尽可能是下拉选项卡,以便工作人员直接选择,避免输入时出现格式、数据等错误。

2.2.2 网络稳定性。智慧乡镇平台后台代码编写完成后,将其部署到服务器。接入网络服务的采集APP一般在野外作业,山区信号稳定性往往不能得到保障。因此,开发时可现场将采集的表单属性信息和相关照片信息数据存储在APP本地端,选择好的网络环境上传数据到服务器。

2.2.3 逻辑检校性。整个APP采集系统存在数据逻辑相关性。APP采集系统提供给工作人员的人员信息录入界面中,年龄不能为负值。建筑物信息方面,当选择关联的房屋为单户时,只能填写一个房屋信息,而为多户时,则需要填写多个房屋信息。户籍人员与房屋关联人员不能出现同一身份证下人员重复的情况。

采集APP使用ArcGIS SDK for Android开发,发布的地理底图采用WGS84坐标系,与Android自带的GPS定位模块坐标系无缝衔接,无须坐标转换。开发人员使用ArcGIS Server发布无人机影像数据和行政界线数据,为WMS地图服务,以此作为采集APP的地理底图,同时使用Navicat for Sqlite软件,以Excel表格形式将乡镇卫生院户籍人口信息制作成SQLite数据库。APP提供了数据采集录入界面,实现与本地数据库交互。APP采集系统采用离线存储数据方式,将属性信息、照片信息保存于手机本地,在数据上传之前可做增加、删除、修改等操作。野外数据采集完成后,工作人员可借助WIFI较好的网络环境上传离线数据。

3 关键技术

3.1 地理位置信息技术

移动采集APP系统使用ArcGIS SDK for Android作为地图展现的载体。ArcGIS SDK for Android是ESRI公司移动端地图开发包,该开发包支持OGC组织发布的WMS、WFS地图服务,能快速显示离线与在线数据,同时提供了一系列操作地理信息数据的功能接口。开发人员只要获得发布好的WMS地图服务,使用MapView类即可将地图接入展示。此外,ArcGIS SDK for Android的MapView类提供了事件点击回调接口,开发人员使用该接口实现坐标位置的获取。开发人员可以自定义图标,即可在MapView类上定义定位图标。ArcGIS SDK for Android还提供了多种数据图层加载,点、线、面地理实体符号化,本地shapefile矢量数据的渲染等接口,极大地满足开发人员开发移动GIS信息系统的需求。

3.2 数据库技术

APP采集系统使用GreenDao作为数据库开发框架,该框架能实现由数据库表到JAVA Bean对象的快速关联。建立好的数据库表只需要注记JAVA实体对象及主键等信息,就能生成表单关联代码。GreenDao是建立Android的一个SQLite关系型数据库,该数据库框架具有性能高、内存占用小、库存文件小、支持数据库加密和提供易用操作接口API的特点。调用GreenDao增、删、改、查语句,可对实体操作,避免写原生复杂SQL查询语句而出现错误,方便离线数据的采集和保存。Android开发时,可以在AndroidManifest.xml中配置Application子类,全局管理SQLite数据库,其间可使用GreenDao与已收集好的户籍数据建立关联。其中,APP采集系统具有多个与数据库同样重要的相关类。

3.2.1 DaoMaster。DaoMaster借助其继承SQLiteOpenHelper的子类OpenHelper、DatabaseOpenHelper,实现对数据表的创建与删除,本质上是调用SQL语句创建与删除实体,其Dao实现增加与删除建筑、房屋、照片等数据表的函数为createAllTables和dropAllTables。

3.2.2 DaoSession。DaoSession会话类实现了对Dao层的管理。开发人员可以借助会话类,筛选未上传的数据条件,也可以查询某行政村下属自然村户籍人口数据。

3.2.3 Daos。Daos操作数据库表元素,其字段的绑定、表的创建与删除函数代码都是由GrennDao自动生成的。

3.2.4 Entities。JAVA Bean实体对象表示数据表持久层,GreenDao提供了表与表之间关系对应的标记。比如,建筑物实体与房屋实体、建筑物与照片存在如下代码的一对多关系。同样可以使用@ToMany标记一个户籍下对应多个人的一对多关系。

/*一建筑对应多个房子,一对多的关系*/

@ToMany(referencedJoinProperty = "buildinginfo_uuid")

List entityHouseInfoList;

/*一个建筑对应多个照片*/

@ToMany(referencedJoinProperty = "buildinginfo_uuid")

List entityBuildingPicInfoList;

3.3 网络服务技术

移动APP采集系统与后台服务端网络交互采用JSON数据格式,该方式做到前后端分离,后台一套服务接口可供移动端和Web端同时使用。APP采集系统集成了RxJava、Retrofit与Okhttp相关网络第三方库,这些网络相关jar包能对网络服务实现快速管理,有效解决Android的UI线程耗时与线程切换的问题。其中,Retrofit是网络请求封装,可实现请求参数、请求头的设置,而用户登录,验证码获取以及对采集的建筑、房屋、人员属性信息数据上传则由Okhttp完成。Retrofit结合开发人员的相关设置将Okhttp的返回结果解析给前台。开发人员也可以直接使用Retrofit返回的ResponseBody结果进行解析。下面的代码为请求修改密码的Retrofit封装。

@POST(SpptURL.URL_USER_RESET_PASSWORD_Mod)

Observable UserPassWordMod(@FieldMap Map map);

4 系统设计与功能实现

4.1 数据采集路线

APP采集系统按照两条主线进行数据采集设计,其数据采集流程如图1所示。第一条路线为乡镇工作人员首先对户籍数据进行采集,接着对人员属性数据进行录入与拍照。第二条路线为乡镇工作人员到现场在地图上正确点击当前建筑物所在的位置,APP采集系统将跳转到建筑物信息界面,在此界面填完信息后对建筑物拍照,对应选择录入该建筑的房屋(家)信息。由于第一条路线已经采集好人员数据,只需要挂接之前采集好的人员信息数据到房屋即可。工作人员按照这两条路线的顺序,可以减少采集数据工作量,提高采集速度。

4.2 数据库设计

根據采集流程,开发人员需要设计出建筑信息表、房屋信息表、户籍信息表、人员信息表以及照片信息表。建筑信息表与房屋信息表、房屋信息表与人员信息表、户籍信息表与人员信息表、人员信息表与照片信息表存在一对多的关系。按照系统设计的数据库表,由GreenDao建立与相应JAVA的实体联系,其中人员信息表对应的部分字段信息如表1所示。

4.3 系统功能

移动端采集APP使用MVC架构模式,将页面表现层代码写在活动(Activity)中,户籍信息采集如图2所示,人员信息采集如图3所示。其具有五大功能。

4.3.1 用户管理。用户需要正确输入用户名、密码以及验证码,方可登录。有新用户时,可新注册用户。用户可以修改密码,而当用户忘记密码时可重置密码。系统的重置密码功能需要发送手机验证码,以防随意更改密码。

4.3.2 数据采集。工作人员可以在地图上依据影像判别和准确拾取建筑物位置,系统跳转切换到数据采集页面,相应填写建筑物名称或房主信息,选择该乡镇行政村与自然村的行政代码,同时对建筑物进行拍照,获取图片信息。按照功能设计需要,建筑物里往往会住人,对于不住人的,无须关联房屋(家),建筑物里住人的,要填写房屋建筑面积和房屋间数。房屋住人分为多种情况,需要填写与房屋相关联的人员信息。具体来说,其涉及四个方面。

一是为了减少工作人员工作量,采集APP以已有户籍数据为原始数据,采集人员采集数据时只需要输入户主姓名,或者通过行政村和自然村筛选的方式选择指定的户籍数据挂接至新的房屋人员信息中。挂接的数据能快速关联人员,这样需要采集工作者对人员的姓名、性别、证件类型、证件号码、婚姻状况、民族、与户主的关系等信息进行一一核对。

二是通过更新户籍挂接人员数据,从更新户籍里找到已经处理好的户籍人口数据,然后将其直接挂接到新房人口表中。

三是通过选择已有人的方式,将已经录入本地数据库的人员数据挂接到本房屋下的人口数据中。

四是针对需要重新录入的人口,如新出生的小孩,已经处理好的户籍表中没有数据,提供录入界面,获取新的人口信息。当出现一个建筑物下有多家人住的情况时,可在该建筑下再添加一个新的房屋。户籍信息采集界面如图2所示,人员信息采集界面如图3所示。

4.3.3 定位功能。采集APP直接借助Android系统提供的GPS定位接口获取当前坐标位置信息,为数据采集人员在地图上点击建筑位置提供参考依据。

4.3.4 数据管理。工作人员通过该模块能够修改和删除已经填写的数据。数据删除存在相互关联性,建筑信息数据的删除意味着关联的房屋、人员数据也将被删除。

4.3.5 数据上传。采集APP提供一键上传功能,将逐条地从建筑、房屋、与关联人员等方面上传数据至服务器,同时会反馈上传成功与否。

5 结论

APP采集系统应用界面简单,能适应不同年龄的工作人员群体,使用了当地卫生院原有户籍数据,减少了工作人员录入数据的工作量。采集APP叠加了ArcGIS Server发布的WMS地图服务,同时提供了定位功能,工作人员能够依据该功能快速辨别当前所处的位置,起到辅助识别房屋建筑位置的效果。工作人员在野外就可以在APP上填写数据,极大方便了乡镇工作人员在野外进行无纸化作业办公,提高了工作效率。当然,采集APP为整个智慧乡镇搭建了基础数据,其他方面的相关数据需要进一步完善,这也为APP开发预留了功能扩展的空间。开发人员可以结合当地乡镇实际情况,做功能的扩展开发,其间需要因地制宜地加入特定功能,使得采集APP得到广泛推广和应用。

采集APP通过位置信息关联至建筑物、房屋、人员,这为整个智慧乡镇平台建设提供数据生命力,极大地提高了空间上管理属性数据的能力。采集系统使用移动GIS相关技术,结合网络技术,实现乡村互联网信息化水平的提升。数据采集是智慧乡镇平台建设的前期工作,开发的APP采集系统能够有效地作为从空间上管理数据的工具,同时对乡镇工作人员信息化办公起到促进作用。未来,人们要加大研究力度,积极建设智慧乡镇平台,利用已经采集好的数据,结合地理位置信息进行数据统计和分析,为智慧乡镇建设贡献力量。

参考文献:

[1]熊鹏波.浅谈基于Android的移动地理信息采集系统建设[J].测绘与空间地理信息,2016(7):179-181.

[2]李志伟,高敏,蒋仁秀,等.基于ArcGIS Android API的移动端数据采集系统的设计与实现[J].现代测绘,2015(1):28-29.

[3]张海瑞,吴学饶,兰小机.基于ArcGIS for Android野外實习数据采集与导航系统的实现[J].测绘工程,2015(3):36-39.

[4]徐静波,许捍卫,孙咸磊,等.基于Android平台的土地变更数据移动采集系统的设计与实现[J].勘察科学技术,2016(6):23-27.

猜你喜欢
开发人员户籍乡镇
我国乡镇污水处理模式的探讨
突破乡镇地区幼小衔接的瓶颈
乡镇卫生院应加强档案规范化管理工作
Semtech发布LoRa Basics 以加速物联网应用
今年起3年内新增财力全部留给乡镇
征婚信息
户籍制度改革的基本原则
热议
后悔了?教你隐藏开发人员选项
三星SMI扩展Java论坛 开发人员可用母语