我们的GPS车辆监控开源项目经过团队两个月的努力,已经基本成型了,年后希望能更加完善一下,加入一些业务方面的内容。这个项目是基于爱好而创建的,没有任何酬劳,不过能将这个项目做成商业级的水平,参与者所能获得的荣誉和附加价值不言而喻。
简单介绍下这个项目和以后的发展思路。目前项目采用C#+MapObjects平台开发,采用C/S架构,目前已经实现了下面所介绍的功能。年后的计划是,将C/S架构转型成B/S架构,并加入具体业务,最终的目标是做成行业应用软件。
如果有符合一下条件的朋友,可以和我联系:
1、熟悉c#2.0,aspx
2、热爱开源
3、不怕吃苦而没报酬的生活
4、做事执着
5、最好熟悉某个行业的业务知识或具有某行业的工作经验(如车辆管理、数字化执勤管理等)
我的联系方式(快要过年了,可能要年后才能回复您)
QQ:281383656
QQ群:20490696
MSN:
massifor@hotmail.com
Email:
lionyue@126.com
下面是这个项目的详细说明,下面所说的东西已经基本实现。
一、项目的工作流程
![](http://gpstracking.googlecode.com/svn/trunk/Document/structure/%e7%b3%bb%e7%bb%9f%e6%b5%81%e7%a8%8b%e5%9b%be.png)
流程图说明:
1、
GPS
车辆实时监控流程:
流程路线:A
à B
à D
说明:车辆位置模拟服务器实时批量产生模拟的车辆位置信息,并通过UDP协议报文发送到GPS车辆监控系统。GPS车辆监控系统如果一次性接收并处理车辆位置信息,将会加重系统的负荷,造成系统效率低下的后果,因此在处理车辆位置信息之前,需要将位置信息先保存在消息队列中,然后在以系统能承受负荷的基础上设定一个间隔时间,实时从消息队列中读取数据,并动态显示在电子地图上。
2、
GPS
车辆轨迹记录流程
流程路线:A
à C
à F
说明:车辆位置模拟服务器实时批量产生模拟的车辆位置信息,并通过UDP协议报文发送到GPS车辆轨迹记录系统。轨迹记录系统间隔一定时间从消息队列中取出车辆位置信息,并一次性将消息队列中的所有信息保存到数据库中,然后清除消息队列中的所有消息。
3、
GPS
车辆轨迹回放流程:
流程路线:H
说明:GPS车辆监控系统在需要查询某辆车在某个时间段内的运动轨迹时,通过SQL语句直接从轨迹记录系统中的轨迹表中查询出相关数据,并按照一定的算法来对这些轨迹数据进行回放。
4、
地图数据加载流程:
流程路线:J
à P
说明:地图配置系统,配置好底图的样式,坐标系统,比例尺,形成地图工程文件,供GPS监控系统调用。
5、
系统配置信息加载流程:
流程路线:I
à K
说明:地图配置系统配置好GPS监控系统中各种可变参数之后,保存在Access(在配置信息数据量大的情况下使用Access)或者XML(在配置信息数据量小的情况下使用XML)中,GPS监控系统在启动时读取配置信息,完成初始化。
二、 GPS
车辆监控系统的系统架构
GPSTrackingMonitor(
GPS跟踪系统,以下简称GTM)主要用来对车辆进行跟踪,在电子地图上实时显示其所在位置,但其长远目的是为以后可以在该系统平台上构建复杂的业务系统而构建一个基础平台, 因此在保证系统有较高的使用效率和友好的交互性能之外,还必须具有很好的可扩充性。
![](http://gpstracking.googlecode.com/svn/trunk/Document/structure/GPSTrackingMonitor%e7%bb%93%e6%9e%84%e5%9b%be.png)
GTM
由以下六大核心模块组成:
1
、电子地图显示和操作
2
、UDP通信信息实时解析和处理
3
、GPS车辆的信息查询和位置确定
4
、GPS车辆的轨迹回放
5
、车辆最优路径选择
6
、数据统计及报表生成
在架构上,可以划分成三个层次:
1
、表现层
主要是电子地图的显示和车辆的实时位置显示,以及相关信息查询的展现。其相对应类文件的是系统中的全部窗体类。表现层的操作基于应用层。
2
、应用层
为表现层提供基础性以及操作性的函数库。
A
、所谓
基础性的函数库是指为系统提供最底层的功能性函数,这个函数库为操作性函数库服务,这个函数库包括相关底层算法(如最短路径分析、轨迹回放算法)、地图操作中最基础的功能(如地图数据源读取、图层排序、工程文件读取)、基础数据管理(如数据库连接建立、
XML节点操作)、UDP通信(比如消息队列处理、协议解析、指令请求)、异常信息处理(比如提供统一的异常信息、为异常信息分类),基础性函数库所对应的命名空间是BaseHandler
B
、所谓
操作性的函数库是与表现层直接相交道的函数库,并基于基础性函数库,该函数库操作的是业务数据。表现层中不同的模块对应这不同的操作性函数,因此操作性函数库包括地图操作(
MapOperation)、轨迹回放(GPSTrackingReplay)、信息统计(InformationQuery)、报表生成(Report)、数据通信(Communication)、系统配置(Configure),并可以根据实际情况适当的扩展。其中在多个地方都可能使用到的函数,放置在Utilities命名空间下。
3
、数据层
为系统提供地图数据和业务数据,包括
Shapefiles,Access,SDE,XML,
A
、Access用来存储
GPS车辆轨迹数据,以及复杂的配置信息,
B
、XML用来存储简单的配置信息,如工程文档、通信端口等
C
、Shapefiles、
SDE用来存储地图数据。
三、地图配置系统:
MapConfigure项目(地图配置系统,一下简称
MC)主要用来配置地图数据和维护数据字典。
![](http://gpstracking.googlecode.com/svn/trunk/Document/structure/MapConfigure%e7%bb%93%e6%9e%84%e5%9b%be.png)
其主要功能包括:
1
、图层样式配置
A
、坐标系统设置
B
、面图层的渲染、点图层的
symbol选择、线图层的线性选择
C
、显示比例范围(即设置最大可见比例和最小可见比例)
2
、添加、删除、修改、保存地图数据
3
、功能文件保存和读取
A
、坐标系统
B
、样式
C
、显示比例范围
D
、初始化比例尺
F
、图层顺序
G
、数据源类型
H
、图层路径或空间数据库连接参数
4
、数据字典维护(即复杂配置信息的维护)
目前还不清楚哪些数据需要维护,在项目中视具体情况而定。