hengyu
路人甲
路人甲
  • 注册日期2004-01-08
  • 发帖数65
  • QQ24637884
  • 铜币406枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:21887回复: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
hikeryu
路人甲
路人甲
  • 注册日期2008-01-03
  • 发帖数18
  • QQ
  • 铜币159枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2009-05-06 12:54
<P>楼主,可以的话,也给我发一份源码,谢谢!</P>
<P>我的邮箱:hiker_liu@163.com</P>
举报 回复(0) 喜欢(0)     评分
weisongmiao
路人甲
路人甲
  • 注册日期2007-03-22
  • 发帖数24
  • QQ
  • 铜币174枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2009-03-23 13:17
<P>按你说的路子搞了搞,问题出在地图的请求与实时显示所需数据请求的不同步上。比如在移动、平移、缩放等操作过程中,这时对实时数据请求的操作并没有停止。互相之间有时候会产生冲突。不知道这方面有没有比较好的解决办法或者思路。</P>
举报 回复(0) 喜欢(0)     评分
weisongmiao
路人甲
路人甲
  • 注册日期2007-03-22
  • 发帖数24
  • QQ
  • 铜币174枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2009-02-27 12:26
<P>真是好文啊!!!给个源码就更好了!</P>
<P>先谢谢了!</P>
<P>weisongmiao@163.com</P>
举报 回复(0) 喜欢(0)     评分
mayue406
路人甲
路人甲
  • 注册日期2008-08-07
  • 发帖数2
  • QQ
  • 铜币107枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2008-10-11 07:57
<P>我在做一个监控车辆定位的简单webgis系统,能否将你的开发代码或者开发过程发我借鉴下,非常感谢!<a href="mailtmayue406@163.com" target="_blank" >mayue406@163.com</A></P>
举报 回复(0) 喜欢(0)     评分
george1
路人甲
路人甲
  • 注册日期2008-07-22
  • 发帖数6
  • QQ
  • 铜币116枚
  • 威望0点
  • 贡献值0点
  • 银元0个
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>
举报 回复(0) 喜欢(0)     评分
hongzhen614
路人甲
路人甲
  • 注册日期2008-08-22
  • 发帖数9
  • QQ
  • 铜币120枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2008-08-26 15:14
<P>楼主能否吧代码打包上传,或者麻烦传一下我,谢谢!</P>
<P>hongzhen614@126.com</P><img src="images/post/smile/dvbbs/em01.gif" />
举报 回复(0) 喜欢(0)     评分
mytest
论坛版主
论坛版主
  • 注册日期2006-12-17
  • 发帖数155
  • QQ
  • 铜币53枚
  • 威望0点
  • 贡献值0点
  • 银元0个
7楼#
发布于:2008-08-14 08:55
<img src="images/post/smile/dvbbs/em08.gif" /><img src="images/post/smile/dvbbs/em08.gif" />
举报 回复(0) 喜欢(0)     评分
xiaoweixiong
路人甲
路人甲
  • 注册日期2008-07-28
  • 发帖数1
  • QQ
  • 铜币104枚
  • 威望0点
  • 贡献值0点
  • 银元0个
8楼#
发布于:2008-08-04 13:03
楼主源码发布在哪里啊?能不能给我发一份,<a href="mailtxiaoweixiong1@163.com" target="_blank" >xiaoweixiong1@163.com</A>,十分感谢啊!
举报 回复(0) 喜欢(0)     评分
bearing07
路人甲
路人甲
  • 注册日期2007-11-19
  • 发帖数1
  • QQ
  • 铜币103枚
  • 威望0点
  • 贡献值0点
  • 银元0个
9楼#
发布于:2007-11-30 11:11
good job ,louzhu.<br>
举报 回复(0) 喜欢(0)     评分
上一页
游客

返回顶部