日期:2014-05-19  浏览次数:20734 次

高手过来看看,这样接收到的数据应该如何处理?
我现在做的是一个接收GPS信号的地理信息系统,是用来监控安装了GPS的汽车行走路线的,接收数据都没问题了,现在做到处理数据的模块了,为节省时间避免走弯路,在此请各位大侠指点一二:
具体情况数据是这样的,我定义了每个GPS的类,其中有批号、车型、车辆数量、汽车位置、行驶速度、行驶方向等。
现在GPS是不停地接收到数据,为防止数据丢失,我单独做了个程序把接收的数据写入到一个XML中,我要有一个列表来显示这些数据,而且要在地图是显示出来,现在的问题是我没有一个好的办法来处理接收到的源源不断的数据
需要注意的是:
1、接收的所有数据都已经写在本地的XML文件中
2、每批汽车是同一个批号,也就是说有可能有三辆车运送一批货物,那么这三辆车只发送一个GPS信号
3、在列表中显示的同一批号只显示一列,也就是说XML中存在同一批号的信号发送过来多次的情况,但这时只显示其中一列
4、XML并不是保存数据的最终手段,只是为断电等特殊情况下备份而用
5、系统中有历史路线查询功能(可能用的十分频繁),也就是说数据在显示后还要保存在内存中,当然如果系统死机或断电可以不考虑历史路线查询。
我想到过的处理办法:
1、定义一个GPS信号类的2维数组(ClassGpsSign[a,b]),每一个批号用第一维来标识(ClassGpsSign[a,n]),在XML中读取的数据按批号分配到n中去
2、使用HashTable,具体处理和数组差不多

我总感觉都不太好,应该还有更好的办法处理,请大家指点哪种好一点?是否还有更好的方法?对数据流的处理大家都是怎么做的?

再有:谁有MapX2005可开发用的版本提供一份,我不做商业开发,但可能要在内部试用,我愿意用少许RMB来购得,有意者给我留短消息。

有C#开发的MapX的GIS源码我也可以购买,我的基本完成,但感觉不太如意,想借鉴一下高手的。

------解决方案--------------------
各位,回答问题先回答个重点好不好
关于楼主主要的问题,我来谈谈个人意见吧:
我也做过类似的东西,你定义GPS信号的时候最好再加上一个字段来标识本条信号是不是已经读取过的或处理过的,这样你就可以把处理过的信号与没有处理过的信号区分开了
关于数据流的列表显示,我觉得用数组和哈希表都不好,最好用数据集,这样便于查询、更新的删除等操作,而且保存下来的数据可以随时写入数据库,这样什么意外都不怕了
mapx2005楼主可以到网上下个试用版的,你不做商用应该没太高的要求,大不了有个水印就是了
C#开发的gis有很多,网上查一下一大推,不过能下的没几个,不过这个还是楼主自己来慢慢找吧
------解决方案--------------------
根据你的情况,我初步计算了一下,你一天要有近十万条记录,结合你的项目内容,个人建议你使用SQL Server2005 ,使不使用ACCESS主要不是容量的问题,而是安全,备份,效率,以及存储过程,触发器功能方面的要求.