APP下载

数字照片经纬度识别在实习管理中的应用

2021-12-24

山西电子技术 2021年6期
关键词:经纬度考勤客户端

杜 彬

(山西职业技术学院,山西 太原 030006)

随着数字化校园建设工作的推进,信息化系统也被广泛应用在大学生实习管理工作中,基于智能手机与移动网络构建的信息化系统在学校与学生之间建立便捷、顺畅的实时信息传递渠道,为实习学生的统一管理、人身安全保障提供了有力的技术保障。

1 实习管理中考勤数据的准确性需求

高校大学生实习管理工作具有参与人数多、地点分散、人员活动随机性强等特点,在增加了考勤管理难度的同时,还带来了严重的人身安全隐患,而信息化的实习管理系统是当前各高校解决这一问题的有效对策。通过在学生手机上安装的客户端APP可以有效的掌握学生实习过程中的考勤情况,以及在学生遭遇紧急情况时,通过系统的应急处理机制及时发现并及时提供救助。因此,考勤打卡数据的准确性,就成为系统是否具备有效性与可靠性的基础,其中对学生提交电子照片时所处的地理位置信息的准确获取是数据采集的核心。

对于地理位置信息的获取功能,当前主要以获取用户手机GPRS定位信息的方式来实现,该方式的缺点在于客户端APP程序需要取得用户的位置信息授权,在实际应用中经常被用户屏蔽而导致地理位置信息获取失败,针对此类问题,从数字照片中获取用户位置信息是一个有效的解决方案[1]。

2 经纬度识别技术在实习数据中的应用

2.1 系统模型的框架设计

本研究所设计的学生实习考勤管理系统模型由客户端模块和服务器端模块两部分组成,其中客户端模块安装在学生手机中,在负责每日考勤打卡信息采集的同时,还提供紧急情况上报功能。每日考勤打卡信息包括两部分,以文字方式描述的打卡数据和打卡现场的实时照片。而对于紧急情况上报信息,则学生只需启动客户端的紧急情况上报功能,任意拍摄一张实时照片并上传即可。

图1 学生实习考勤管理系统模型结构

服务器端模块部署在网络服务器上,对日常考勤打卡信息进行地理位置有效性校验并将合格数据存储至数据库中。而对于紧急情况上传的图片,则立即完成地理位置信息的提取和存储并实时监测数据存储情况,一旦发现有新的紧急情况信息被存储入,则启动预警短信发送机制。

2.2 主要功能的实现过程

1) 实习考勤管理客户端的照片采集功能基于Android开发框架实现,启动android.permission.CAMERA权限,调用手机的相机功能拍摄实习考勤打卡照片与紧急情况上报照片。同时禁用android.permission.WRITE_EXTERNAL_STORAGE权限,禁止上传手机相册中的旧照片,仅允许提交实时拍摄的照片文件[2]。

2) 地理位置识别的功能,在服务器端基于Python-3xifread开发库实现,使用Python-3xifread库所提供的process_file函数提取照片文件中的经纬度信息后,通过Baidu Map的 API接口baidu_map_api调用百度地图库数据进行由经纬度到地理位置名称(精确至街道)的反向解析。

3) 打卡信息真实性校验功能的实现基于Python pymysql接口实现,将从照片文件中获取的位置信息与数据库中存储的实习地点信息进行比对,根据比对结果对每一条新提交的考勤打卡信息进行标记。

4) 紧急情况应急处理功能的实现基于Python time接口与Python dysms库实现,通过Python time接口提供的sleep函数以1000 ms为间隔对紧急情况数据表中数据的变化进行实时监测,基于新加入数据中的地理位置信息自动构建预警短信内容,并使用Python dysms库所提供的send_sms函数将短信自动发送至辅导员、实习指导教师等相关人员的手机中。

2.3 关键技术分析

系统后台数据库采用MySQL数据库进行构建,相关的数据库访问操作均使用Python-pymysql接口实现。

1) 数字照片经纬度识别的关键代码

picdata = exifread.process_file(f) #解析数字照片中的信息

for picdata, value in picdata.items():

if re.match(' GPS GPSLinfo', picdata):

#获取纬度数据

GPS[' GPSLinfo'] = str(value)

elif re.match(' GPS GPSWinfo', picdata): #获取经度数据

GPS[' GPSWinfo'] = str(value)

2) 将经纬度数据解析为地理位置的关键代码

lat, lng = GPS[' GPS_information'][ GPSLinfo'],GPS[' GPS_information'][' GPSWinfo']

baidu_map_api = "http://api.map.baidu.com/geocoder/v2/?ak={0}&callback=renderReverse&location={1},{2}s&output=json&pois=0".format(secret_key, lat, lng)#调用Baidu Map API接口

response = requests.get(baidu_map_api)

content = response.text.replace("renderReverse&&renderReverse(", "")[:-1]

baidu_map_address = json.loads(content)#获取解析后的地址数据

3 结语

本研究综合运用Android框架与Python语言尝试构建了一个完全基于开源技术的大学生实习管理系统原型,该系统以C/S模式运行,具有开发与部署成本低、易于实现和维护、系统便于扩展等优势,为各高校通过自主研发信息化系统解决当前学生实习管理工作中的问题提供了有益的技术参考。

猜你喜欢

经纬度考勤客户端
你的手机安装了多少个客户端
你的手机安装了多少个客户端
事业单位人员考勤管理存在的问题及对策
如何看待传统媒体新闻客户端的“断舍离”?
基于人脸识别技术的考勤应用研究
智能人脸识别考勤系统
基于经纬度范围的多点任务打包算法
自制中学实验操作型经纬测量仪
浅谈用人单位的考勤管理在劳动管理中的重要位置
澳洲位移大,需调经纬度