基于GPS手机出警导航系统的数据库研究
2011-08-01朱宇兰
朱宇兰 洪 欣
(1.泉州医学高等专科学校,福建 泉州 362000;2.华侨大学,福建 泉州 362000)
二十世纪八十年代中期,沿海和内地一些大城市公安机关,为适应斗争形势发展的需要,提高公安机关接处警的快速反应能力,便利群众报警求助和投诉,将原为盗(匪)警电话的110,逐步扩大职能和拓宽服务范围,建立了110报警服务台[1]。面对频繁的出警任务,在警力资源有限的情况下,如何提高出警速度和效率成为摆在公安面前的首要问题。
在出警过程中,影响出警效率和准确性的一个关键问题就是警员对目标点周围的地形不熟悉,从而导致出警人员已经接近目标但是找不到准确的目标位置,以致丧失到达出警点的第一时间,造成不必要的损失。
因此,对GPS手机出警导航系统进行研究和开发,为解决出警人员接到指挥中心发送的报警信息后,在不了解道路情况时通过GPS手机的时时通讯和高精度放大/缩小地图功能进行精确导航,即可快速到达目标点,从而提高出警效率。
一、系统开发
(一)开发平台
如今,越来越多的企业在规划内部网络时,将微软平台作为开发的首选方案。从技术角度来讲,微软平台上的应用无论是在开发上还是在软件的部署上都非常容易且性能优越。因此,操作系统选择Windows XP,数据库选择Microsoft SQL Server CE,开发工具选择Microsoft公司的成熟产品Microsoft Visual Studio2008[2]。
(二)系统模块
GPS手机出警导航系统共包括九个模块:界面模块、GPS模块、地图包导入导出模块、出警人员信息编辑模块、出警人员信息查找与出警联系模块、通讯模块、系统参数设置模块、管理员登录模块和语音模块。(见图1)
图1 系统模块图
二、数据库设计[3][8]
(一)数据表
1.目标点信息(见表 1)
英文表名:aim_Info 说明:存放报警点信息。
表1 目标点信息
2.管理员密码(见表 2)
英文表名:Admin_Password 说明:存放管理员密码。
表2 管理员密码表
3.出警日志(见表 3)
英文表名:Task_Log 说明:存放导航记录。
表3 出警日志表
4.系统日志(见表 4)
英文表名:system_Log 说明:存放系统运行日志。
表4 系统日志表
5.轨迹(见表 5)
英文表名:Track_Log 说明:存放出警行动的轨迹
表5 轨迹表
(二)数据库类
该系统以SqlceProcess.cs作为统一的数据库方法调用类。
数据库主类组成包括:取得当前程序运行的目录、创建/连接/备份数据库、创建/清空数据表、向表Task_Log/System_Log/Track_Log中插入一条数据、更新目标点数据、根据目标点编号/地名模糊查询、根据指定的ID精确查询、日期格式转换、返回当前日期时间、查询/更新管理员密码、按给定的两个日期进行查询、根据日期查询轨迹信息[4]。
(三)目标地设置
调用两个数据库空间名后通过FormSetDestination.cs[5]实现类。usingSystem.Data.SqlServerCe;usingSystem.Data.SqlClient;
按编号(见图2)、地名(见图3)和经纬度(见图4)设置目标点。
图2 按编号设置目标点
图3 按地名设置目标点
图4 按经纬度设置目标点
(四)目标地查询
通过数据库表aim_info的主键aim_ID或aim_name来检索输入目标地的信息。通过加入即时侦测输入文本框txtID和txtName[6]的输入字符串,可以达到模糊查找。
*FormFindDestination.cs为该功能实现类
StringBuilder aim_ID=newStringBuilder(8);
SqlceProcess mysql=newSqlceProcess();
1.固定点查询
以目标地的ID(Aim_ID)为查找关键对目标地信息(AimInfo)读取数据,即精确查询。语句如下:
通过目标地的ID的模糊查找,返回查询结果的表,如果查询结果超过50条,则返回前面的50条,即模糊查询。语句如下[7]:
通过目标地的名称的模糊查找,具体数据库语句实现如下.
(五)出警记录
FormTaskLog.cs为该功能实现类,
*FormTaskLog_Load()函数是用来控制Data-Grid1显示。
方法:首先调用DataGridTableStyle类创建表dt,用 MappingName 读出”Task_Log”。其次调用DataGridColunmStyle类读出行 dc1,dc2,dc3,再将它们加入dt,最后将dt写入DataGrid1,这样就完成了数据的读取显示[9]。
由于项目数据库所存的信息的时间格式为1900/01/01,而Datetime类仅提供00/1/1格式,所以将后者(月份为例)读出的字符串之前加入“00”,组成新的字符串格式为“001”,然后截取后两位字符,最后才存入数据库查找所需的时间字符串str_dt1To_dateTime中,这样的格式与数据库所存时间格式相符。
三、主要技术指标
系统没有出现漏报和误报,可准确连续处理任务,具有良好的稳定性和容错能力。系统在相同的测试地点测得的经纬度值与原有的车载定位系统应基本相同,具有良好的测试精度。系统应同时具备精确查询和模糊查询,以进一步提高效率。系统应以最佳路径进行搜索导航,具有线路优化性[9]。使用人员可修改、扩充和维护该系统,应具有可维护性。保证系统的物理、用户管理与数据传输的安全性。优化逻辑与物理设计,使系统运行效率高,反应速度快。系统容易安装并正确使用,应具有可操作性。软件在智能手机中的实际运行(见图5):
图5 实际运行图
四、总结
该系统针对公安部门的需求设置了呼叫总部、队友功能和高精度地图功能。通过解码函数blic string UnCompressInfo(string DestinationInfo)这解析短信内容,从而得知出警任务内容。
精确查找对于功能实现是可以达到要求的,但是当实际使用时,特别是数据量庞大时,使用者不可能记下精确数据来查询目标地信息,因此引入模糊查找是非常必要的。在目标地查询和目标地设置中加入了模糊搜索的函数可进一步提高效率。
该系统在智能手机中安装并在市区内进行了大量的实验,在相同的测试地点测得的经纬度值与原有的车载定位系统基本相同,且在实验测试过程中,没有出现误报警现象,证实了该系统具有良好的测试精度及稳定性[10]。
[1] 罗子欣.天涯咫尺—3G改变我们的生活[M].山东教育出版社,2010(4):12.
[2] 福特Sara Ford.谢俊译.Visual Studio程序员箴言[M].人民邮电出版社出版,2010(1):8.
[3] 郝安林.SQLServer 2008基础教程与实验指导[M].清华大学出版社,2008(11):107-122.
[4] 谢云.Visual C#2008程序设计基础与实例教程[M].研究出版社,2010(8).
[5] 王小科,梁冰,吕双.C#全能速查宝典[M].人民邮电出版社,2009(11):21-22.
[6] WindowsMobile中如何建立GPRS连接以便Socket能正常通信.http://blog.csdn.net/chrys2000/archive/2007/12/11/1928506.aspx.2007,12,11
[7] 范文庆,周彬彬,安靖.API:函数、接口、编程实例[M].人民邮电出版社出版,2009(2):18-25.
[8] 鲍尔,斯内尔(美).刘彦博,肖鹏,贾菡 译.Visual Stdio2008[M].人民邮电出版社出版,2008(10):307-346.
[9] JeffreyRichter(美).王建华等译.Windows 核心编程[M].北京:机械工业出版社,2000:11-17,463-509.
[10] 董四海.GPS全球定位系统的发展趋势及市场前景[J].微型机与应用.1997(11):2-3.