阅读:23184回复: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楼#
发布于:2004-04-15 13:00
xie le!
|
|
2楼#
发布于:2004-04-21 16:30
好的创意
|
|
3楼#
发布于:2004-04-21 16:59
java viewer的确很不方便,下载个sdk就15mb,用html viewer能快吗?
|
|
4楼#
发布于:2004-07-27 16:37
<b><FONT color=#000066>hengyu的朋友:把你画圆的js贴出来参考一下吧,我的信箱是:<a href="mailtlifb2002@yahoo.com.cn" target="_blank" >lifb2002@yahoo.com.cn</A> 多谢!</FONT></b>
|
|
5楼#
发布于:2004-07-28 20:11
有那为GG可以给我提供部分用JAVA实现GisWEB的实例源码,谢谢!<img src="images/post/smile/dvbbs/em02.gif" />
|
|
6楼#
发布于:2004-08-31 15:58
<b><FONT color=#000066>to我是一个兵,源码已发,虽然晚了点,但还是希望有用。</FONT></b>
|
|
7楼#
发布于:2004-09-03 14:49
<P>楼主的这种思路的确不错,通过客户端易控制的特点,可以加强GIS的交互功能和地图展现效果。</P><P>楼主好长时间没来看这个贴了吧,有什么新的进展拿出来和大家分享啊。</P><img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em02.gif" />
|
|
|
8楼#
发布于:2004-09-03 17:32
补充一下,新增部分的实现原理的坐标转换其实是理想化的平面的转换,但由于地球人都知道地球是圆的,所以这个方法只能在地理位置比较小的情况下,比如说市级别的地图,省一级的可能有点误差,但应该不会很明显。
|
|
9楼#
发布于:2004-09-06 10:52
<P>可以的话,也发一份源码给我</P><P><a href="mailtdd_121@sohu.com" target="_blank" >dd_121@sohu.com</A></P><P>谢谢了</P>
|
|
上一页
下一页