以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 SVG/GML/VRML/X3D/XAML 』 (http://bbs.xml.org.cn/list.asp?boardid=21) ---- 车辆跟踪在WebGIS里的实现 (http://bbs.xml.org.cn/dispbbs.asp?boardid=21&rootid=&id=28161) |
-- 作者:gengwei80 -- 发布时间:3/6/2006 8:57:00 AM -- 车辆跟踪在WebGIS里的实现 车辆跟踪在GIS的应用很广,在以往的C/S里实现这个功能,一般是用程序监视位置信息数据库里的定位信息,再在跟踪层上画出来。而在B/S上由于结构的不同,实现的方式也与C/S有一定差别,要考虑的因素也多一些。 现从以下几个方面对车辆跟踪功能在Web GIS上的实现进行讨论: 1.说明结构,列出实现方案; 2.分析功能,选择最优方案; 3.功能扩展。 1. 说明结构,列出实现方案 采用B/S方式,车辆位置在服务器端(以下称server)上,而客户端(以下称client)想要得到车辆的位置,就要在需要时到server上取数据,这个server与client的交互必不可少,少了这个交互,就没办法做跟踪了。所以,交互时client要做什么,server要做什么成了我们讨论问题解决问题的重点。 server上有地图服务(以下称smap)和Web服务(以下简称sweb),一般来说,client的请求都是先到sweb再由sweb转到smap的。 根据以上说明,跟踪的实现可有以下实现方式: a. 在smap上实现。读数据库,把要跟踪的点位置在跟踪层上画出来; b. 在sweb上实现。用动态页访问数据库,生成跟踪结果; c. 在client上实现。直接用JavaScript在页面上画跟踪位置。 2. 分析功能,选择最优方案 需要说明的是,在B/S中server负荷及客户端的访问效果应该是重点考虑因素。 server负荷:车辆跟踪在WebGIS中的应用一般需求是多人对多个车位置,做间隔性的查看。所以这样的交互,一般是,server负荷=client数*跟踪时间间隔。 客户端的访问效果:我们会在下面做分析。 详细分析如下: (1) 采用a方案 上面提到了,“一般来说,client的请求都是先到sweb再由sweb转到smap的”,如果在跟踪层上画,就要client把请求发给sweb,sweb把请求转给smap,smap取地图信息画图,smap取跟踪信息定位,smap生成地图,smap通知sweb,地图已生成,sweb把地图显示给client。从上面的流程可以看出,这种跟踪方式已经比正常做一次地图操作的代价还大了,而上面又提了"server负荷=client数*跟踪时间间隔"如果用这种方式,假定用户数是50,跟踪时间时隔是2秒,那么,server的负荷就是1500/分,且server要做smap服务和sweb服务,负荷太大了,不可取。 (2) 采用b方案 这个方案比a方案从性能上来说要好一些了,按b方案,应该只是client与sweb的交互,结果画在页面上。这样虽然不是画在地图上,而是用DIV来画,不过效果不比a方案做出来的差,还可以把一些属性信息也加到DIV里,做出鼠标放在DIV上显示详细信息等效果。server负荷虽然在访问次数上没变,但由于smap不用工作了,所以server负荷也应该比a方案的要小。但是这种方案还是有一个弱点,就是上面说的要考虑两个因素里的“客户端的访问效果”,页面要提交,就算地图不换,仅提交页面,自然页面有闪动,用户在跟踪时,如果还是假设跟踪时间时隔是2秒,那么页面两秒闪动一下,效果很不好,还有一个就是在客户端的一些操作如拉框放大,当页面提交时就会被停止,这是没办法忍受的。 (3) 分析c方案 这个方案是一个推荐方案,从server负荷到客户端的访问效果都达到了最好,不过上面说到“server与client的交互必不可少”,所以我们这里选择使用XML来解决server与client的交互问题。在server上有一个服务负责把跟踪信息生成XML表,客户端用JavaScript构造XML对象把server上生成的XML取过来,在client上画这个XML里描述的位置信息。 需要注意的,在client上画定位点时,坐标是像素单位,而一般在server上得到的是地理坐标单位,需要进行换算,并且要判断坐标是否超出了地图窗口,超出的点不绘制。 3. 功能扩展 (1) client的扩展 加上鼠标移动到动态目标上时显示提示信息; 用户可以在XML表中加上一些字段,来显示动态目标的名字等信息; 动态标签,可在动态目标的旁边增加一个标签,这个标签是动态目标的一个属性,如做一个采油站的油量监控。 (2) server扩展 可以用动态页的方式生成一个XML; 也可以用一个程序监听数据库的车位置变化,在server上不断生成cars.xml。
|
-- 作者:卷积内核 -- 发布时间:3/6/2006 10:37:00 AM -- 值得研究 |
-- 作者:zhangjp999 -- 发布时间:5/23/2006 1:18:00 PM -- 思路不错 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
46.875ms |