hengyu
路人甲
路人甲
  • 注册日期2004-01-08
  • 发帖数65
  • QQ24637884
  • 铜币406枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:21787回复:49

内容更新:webgis上实时监控的快速实现方法

楼主#
更多 发布于:2004-01-09 09:01
<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编辑过]
喜欢0 评分0
lzg_cj
路人甲
路人甲
  • 注册日期2004-01-08
  • 发帖数142
  • QQ
  • 铜币448枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2004-04-15 13:00
xie le!
举报 回复(0) 喜欢(0)     评分
ge_zi
论坛版主
论坛版主
  • 注册日期2003-09-04
  • 发帖数278
  • QQ
  • 铜币633枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-04-21 16:30
好的创意
举报 回复(0) 喜欢(0)     评分
gis1117
  • 注册日期
  • 发帖数
  • QQ
  • 铜币
  • 威望
  • 贡献值
  • 银元
3楼#
发布于:2004-04-21 16:59
java viewer的确很不方便,下载个sdk就15mb,用html viewer能快吗?
举报 回复(0) 喜欢(0)     评分
我是一个兵
路人甲
路人甲
  • 注册日期2004-02-03
  • 发帖数79
  • QQ
  • 铜币153枚
  • 威望0点
  • 贡献值0点
  • 银元0个
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>
举报 回复(0) 喜欢(0)     评分
rainbow2008
路人甲
路人甲
  • 注册日期2004-06-29
  • 发帖数16
  • QQ
  • 铜币143枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2004-07-28 20:11
有那为GG可以给我提供部分用JAVA实现GisWEB的实例源码,谢谢!<img src="images/post/smile/dvbbs/em02.gif" />
举报 回复(0) 喜欢(0)     评分
hengyu
路人甲
路人甲
  • 注册日期2004-01-08
  • 发帖数65
  • QQ24637884
  • 铜币406枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2004-08-31 15:58
<b><FONT color=#000066>to我是一个兵,源码已发,虽然晚了点,但还是希望有用。</FONT></b>
举报 回复(0) 喜欢(0)     评分
liu76xt
论坛版主
论坛版主
  • 注册日期2004-05-26
  • 发帖数262
  • QQ
  • 铜币499枚
  • 威望0点
  • 贡献值0点
  • 银元0个
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" />
| ------------- | 白云悠悠矶头月涌千骏过, 往事渺渺江上风情一燕来。 | ------------- | [img]http://www.gisempire.com/bbs/showimg.asp?BoardID=3&filename=2004-9/200491972356282.gif[/img]
举报 回复(0) 喜欢(0)     评分
hengyu
路人甲
路人甲
  • 注册日期2004-01-08
  • 发帖数65
  • QQ24637884
  • 铜币406枚
  • 威望0点
  • 贡献值0点
  • 银元0个
8楼#
发布于:2004-09-03 17:32
补充一下,新增部分的实现原理的坐标转换其实是理想化的平面的转换,但由于地球人都知道地球是圆的,所以这个方法只能在地理位置比较小的情况下,比如说市级别的地图,省一级的可能有点误差,但应该不会很明显。
举报 回复(0) 喜欢(0)     评分
gisdg
路人甲
路人甲
  • 注册日期2004-09-04
  • 发帖数4
  • QQ
  • 铜币122枚
  • 威望0点
  • 贡献值0点
  • 银元0个
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>
举报 回复(0) 喜欢(0)     评分
上一页
游客

返回顶部