阅读:23189回复:49
内容更新:webgis上实时监控的快速实现方法
<P>所谓实时监控,通俗点说法就是隔段时间页面自动刷新,地图上各个监控点对应有一个表格,表格内数据为最新的监控数据。
如果地图使用图片的话,一个误区在于,如何在地图上(服务器端)动态添加表格,再生成图片。。其实关键在于转变开发的思想,把工作转移到客户端,用html来生成这个表格(因为无法直接贴图,所以没有图例)。本方法优点在于客户端只需浏览器才行,而很多地方都使用java applet实现,这样需要java虚拟机,不太适合广域网的实现。 需要注意的几点: 1、每张表格都是一个Layer层,通过对应监控点的地理坐标获得屏幕的绝对位置(一般工具都有从地理坐标转化为屏幕坐标的方法)。 2、所有的表格都在一个大的Layer内。这样,关闭和显示等整体的控制比较方便。 3、最好能利用对象集合或数组方式保存监控信息,用通过Layer的innerHTML属性将监控表格对应的HTML代码更新到大层中。 4、放大缩小的时候,要判断是否处在实时监控状态,如果是,则重新运行实时监控对应的函数,这样就可以实现动态刷 新。 因为整个过程代码量较大,不方便贴出,再加上本人笔触有限,未能很好表达清楚,以后会慢慢扩充说明。此方法不足之处在于监控表格容易交迭,不过这可以通过特定算法尽可能避免交迭。如有不同见解或需改进之处,欢迎来信指正探讨。</P> <P> "国际刑警"版主发话了,我就再补充一些吧。</P> <P>使用arcims方式进行webgis开发时,个人感觉客户端画图较难的是实时定位。什么意思呢,就是说当地图大小或位置发生变化时,客户端画的信息应该如何同步更新。最初的做法如下,服务端用数组保存画在客户端的点坐标,每次更新都用FromMapPoint方式获得屏幕坐标,然后以字符串方式传递后,再更新客户端的点位置。问题是解决了,但总觉得不爽,别扭的很。终于无意中知道了ToMapPoint和FromMapPoint的原理,于是自己在客户端写了个类似的函数,当然,主要是写类似于FromMapPoint,因为在地图放大缩小位移的过程中,动态点的地理坐标通常不会变,变的只是屏幕坐标。其实方法也是很简单的,只是我不愿意写代码,所以就描述一下开发过程: (1)地图初始化获得初始的MapScreenWidth(地图屏幕宽度),MapWidth(地图地理宽度);获得比例尺scale=MapWidth/MapScreenWidth (2)每次刷新都要将Map.Extent的四个属性保存在客户端,简单起见,暂且用(xMin,yMin,xMax,yMax) (3)假设一点地理坐标为(x,y),则对应的屏幕坐标为xScreen = (x-xMin)/scale;yScreen=(yMax-y)/scale (4)剩下看你客户端点是如何保存的,如果用图片的话,我用div 的 style中 left 和 top,把这两个值更换为xScreen和yScreen一下即可。 (5)只需在客户端用个循环即可把所有点位置更新,对应的监视表格也可刷新其位置。</P> <P>以上方法在arcims的activeX Connector编码中通过。收笔了,不知道描述的是否详细,欢迎大家交流。</P> <P> </P> [此贴子已经被作者于2004-9-3 17:17:39编辑过]
|
|
1楼#
发布于:2009-05-06 12:54
<P>楼主,可以的话,也给我发一份源码,谢谢!</P>
<P>我的邮箱:hiker_liu@163.com</P> |
|
2楼#
发布于:2009-03-23 13:17
<P>按你说的路子搞了搞,问题出在地图的请求与实时显示所需数据请求的不同步上。比如在移动、平移、缩放等操作过程中,这时对实时数据请求的操作并没有停止。互相之间有时候会产生冲突。不知道这方面有没有比较好的解决办法或者思路。</P>
|
|
3楼#
发布于:2009-02-27 12:26
<P>真是好文啊!!!给个源码就更好了!</P>
<P>先谢谢了!</P> <P>weisongmiao@163.com</P> |
|
4楼#
发布于:2008-10-11 07:57
<P>我在做一个监控车辆定位的简单webgis系统,能否将你的开发代码或者开发过程发我借鉴下,非常感谢!<a href="mailtmayue406@163.com" target="_blank" >mayue406@163.com</A></P>
|
|
5楼#
发布于:2008-09-04 15:50
<P>我在做一个监控车辆定位的简单webgis系统,但是苦于没有好的参考,现在停滞在简单的车辆图层显示上,能否将你的开发代码或者开发过程发我借鉴下,非常感谢!</P>
<P><a href="mailtgeorge971@gmail.com" target="_blank" >george971@gmail.com</A> </P> <P>79919705</P> |
|
6楼#
发布于:2008-08-26 15:14
<P>楼主能否吧代码打包上传,或者麻烦传一下我,谢谢!</P>
<P>hongzhen614@126.com</P><img src="images/post/smile/dvbbs/em01.gif" /> |
|
7楼#
发布于:2008-08-14 08:55
<img src="images/post/smile/dvbbs/em08.gif" /><img src="images/post/smile/dvbbs/em08.gif" />
|
|
8楼#
发布于:2008-08-04 13:03
楼主源码发布在哪里啊?能不能给我发一份,<a href="mailtxiaoweixiong1@163.com" target="_blank" >xiaoweixiong1@163.com</A>,十分感谢啊!
|
|
9楼#
发布于:2007-11-30 11:11
good job ,louzhu.<br>
|
|
上一页
下一页