




已阅读5页,还剩59页未读, 继续免费阅读
(地图制图学与地理信息工程专业论文)基于arcgis+server的webgis研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
硕士学位论文 摘要 摘要 g i s 与w 如技术结合推动了网络地理信息系统( w e b g i s ) 的发展, a i a x 技术的出现进一步加快了w e b g i s 产业化和大众化。近年来e s r i 公司推出了a r c g i ss e r v e r 系列,使得基于a r c g i ss e r v e r 和a j a x 技 术的w e b g i s 更加趋于成熟,推动w e b g i s 走进大众信息生活起到很 大的作用。 本文首先介绍了a j a x 技术原理和关键技术,详细说明了a j a x 的 异步通讯的工作方式。a r c g i ss e r v e ra d ff o r n e tc a l l b a c k 回调技术 封装了a j a x ,利用这种技术的w e b g i s 具有不受浏览器的限制,开发 方便快捷,以异步通讯方式通讯等优点,在今后的发展中,a j a x 技 术的利用是w e b g i s 一个重要的发展方向。 其次分析了a r c g i ss e r v e ra j a x 框架,阐述了a r c g i ss e r v e ra d f c a l l b a c k 运行机制,总结了a r c g i ss e r v e rf o r n e t 的开发方式。在实 际应用中,基于a r c g i ss e r v e r 的w e b g i s 成功无疑为g i s 提供了一 种新的设计思路和模式。 论文最后重点探讨了基于a r c g i ss e r v e 9 2 的w e b g i s 开发方式, 提出一种构建企业级g i s 系统的解决方案,并详细论述了w e b g i s 系 统开发中关键技术和扩展机制。在此基础上设计开发了基于a r c g i s s e r v e r 的w e b g i s 应用系统,经过测试达到预期效果。 关键字:a j a x ,w e b g i s ,回调技术,a r c g i ss e r v e r 硕士学位论文 a b s t r a c t a b s t r a c t c o m b i n i n gg i sw i t hw e bp r o m o t e st h ed e v e l o p m e n to fw e b g i s ,t h e a p p e a r a n c eo fa j a xt e c h n i q u ef u r t h e rs p e e d su pt h ei n d u s t r i a l i z a t i o na n d p o p u l a r i t yo fw e b g i s i nr e c e n ty e a r s ,e s r ih a si n t r o d u c e das e r i e so f a r c g i ss e r v e r , w h i c hm a d ew e b g i sb a s e do na r c g i ss e r v e ra n da j a x t e c h n o l o g ym o r em a t u r e ,a n dg o tw e b g i sp l a yas i g n i f i c a n tr o l ei nt h e l i f eo f p u b l i ci n f o r m a t i o n f i r s to fa l l ,t h i sa r t i c l ei n t r o d u c e st h ep r i n c i p l ea n da d v a n t a g e so f a j a xt e c h n i q u e ,p a r t i c u l a r i z e st h ea s y n c h r o n o u sc o m m u n i c a t i o no ft h e w o r k i n gm e t h o d sa n dt h ek e yt e c h n i q u ea b o u ta j a x c a l l b a c kt e c h n i q u e o fa r c g i ss e r v e ra d ff o r n e te n c a p s u l a t e st h ea ja x t a k i n ga d v a n t a g e o ft h i st e c h n i q u ei nw e b g i sh a sm o r ee x c e l l e n c e s ,f o re x a m p l e ,n o l i m i t a t i o n so nt h eb r o w s e r , t h ec o n v e n i e n ta n df a s td e v e l o p m e n t ,m e a n s o fc o m m u n i c a t i o ni na s y n c h r o n o u sc o m m u n i c a t i o n ,a n ds oo n i nt h e f u t u r e ,u s i n gt h ea j a xt e c h n i q u ei nw e b g i si sa ni m p o r t a n td i r e c t i o no f d e v e l o p m e n t s e c o n d l y , t h i sa r t i c l ea n a l y z e st h ef r a m e w o r ko fa r c g i ss e r v e r a j a x ,e x p o u n d st h er u n - t i m em e c h a n i s ma n ds u m m a r i z e st h em e a n so f d e v e l o p m e n to fa r c g i ss e r v e rf o r n e t i nt h ep r a c t i c a l i t y , t h es u c c e s so f w e b g i sb a s e do na r c g i ss e r v e ru n d o u b t e d l ys u p p i e san e wd e s i g nw a y a n dm o d ef o rg i s f i n a l l y , t h i sa r t i c l ef o c u s e so nt h ew a yo ft h ed e v e l o p m e n to f w e b g i sb a s e do na r c g i ss e r v e 9 2 ,t h e np u t sf o r w a r da ne n t e r p r i s e c l a s s s o l u t i o no fg i ss y s t e m ,a n dp a r t i c u l a r l yd i s c u s s e st h ek e yt e c h n i q u ea n d t h ee x p a n s i o nm e c h a n i s ma b o u tt h ed e v e l o p m e n to fw e b g i ss y s t e m o n t h i sb a s i s ,a j a x - b a s e da p p l i c a t i o n so fw e b g i sh a sb e e nd e s i g n e da n d d e v e l o p e d ,a n da n t i c i p a t i v ee f f e c th a sb e e nr e a l i z e dt h r o u g ht e s t k e y w o r d - a j a x ,w e b g i s ,c a l l b a c kt e c h n o l o g y ,a r c g i ss e r v e r 原创性声明 本人声明,所呈交的学位论文是本人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除了论文中特别加以标注和致谢 的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不 包含为获得中南大学或其他单位的学位或证书而使用过的材料。与我 共同工作的同志对本研究所作的贡献均已在论文中作了明确的说明。 作者签名: 学位论文版权使用授权书 本人了解中南大学有关保留、使用学位论文的规定,即:学校 有权保留学位论文并根据国家或湖南省有关部门规定送交学位论文, 允许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分内 容,可以采用复印、缩印或其它手段保存学位论文。同时授权中国科 学技术信息研究所将本学位论文收录到中国学位论文全文数据库, 并通过网络向社会公众提供信息服务。 作者签名:虹郢签名盘监眺出年月丘日 硕士学位论文第章绪论 第一章绪论 1 1 研究背景和意义 地理信息系统( g e o g r a p h i ci n f o r m a t i o ns y s t e m ) 是指在计算机硬、软件系统支 持下对整个或部分地球表层( 包括大气层) 空间中的有关地理分布数据进行采集、 储存、管理、运算、分析、显示和描述的技术系统n 1 。经过多年的发展, g i s 已经应用到了关系国计民生的各个方面,广泛应用于自然资源管理、土地规划、 商业、交通、军事、卫生、保险、位置服务、物流管理等部门乜1 。网络技术发展 和普及,在互联网上运行g i s 已成为新需要。目前w 曲g i s 已经成为一种重要的 分布式空间信息资源,在社会生活中发挥着重要的作用。 传统的w e b g i s 存在着不足如:交互能力弱、客户端事件处理能力低下、同 步网络请求方式常常阻塞用户界面等等,严重阻碍了w e b g i s 的发展。j a m e s g a r r e t t 提出a j a x 框架技术,大大改变了w 曲g i s 的运行模式。g o o g l e 公司在2 0 0 5 年推出了基于a j a x 技术的g o o g l em a p ,引起了w e b g i s 的大变革,极大地促进 了w 曲g i s 技术的发展。 a j a x 技术的出现,为w e b g i s 研究和实现技术揭开了新的一页,利用其异 步请求和响应技术,可以使w 曲g i s 不再像传统的w 曲g i s 技术那样庞大而臃肿。 现在正是a j a x 技术迅猛发展成长阶段,有关a j a x 的框架结构和技术层出不穷, 必将大大推动w e b g i s 成熟完善。本文研究的是以a r c g i ss e r v e r 为平台,将a j a x 技术新理论、新技术和方法应用到w e b g i s 中,解决传统w e b 技术支持下的 w e b g i s 存在的一些问题。但是究竟在a r c g i ss e r v e r 平台下a j a x 如何和w e b g i s 技术结合。我带着这些问题,翻阅了大量资料,在前人研究的基础上进行了试验, 完成了论文。 1 2w e b g i s 现状及发展趋势 1 2 ,1w e b gls 发展现状 w e b g i s 技术是g i s 技术与i n t e m e t 技术相结合的产物,是g i s 技术的发展, 是g i s 技术走向社会化的必然途径,是实现”数字地球”的核心技术之一n 训。作为 g i s 信息化、大众化的有效手段,w 曲g i s 得到了迅速的推广和普及。随着网络 技术的不断更新,使得w e b g i s 的丌发技术也呈现出多样性。随着时代的进步, 在互联网上为用户提供空间数据浏览、查询和各种分析分析功能成为g i s 发展 的必然趋势,w e b g i s 必将进入崭新的阶段。 目前,国内外各大g i s 企业都在积极丌发w e b g i s 产品,如:e s r i 公司的 硕十学位论文第一章绪论 a r c g i ss e r v e r ,a r c i m s ,m a p l n f o 公司的m a p x t r e m e 2 0 0 x ,a u t o d e s k 公司的 m a p g u i d e 等。w e b g i s 是g i s 技术发展趋势,国内w e b g i s 技术也有了长足的进 步,发布的产品如:g e o b e a n s ,c d w e b g i s 等。尽管w e b g i s 发展很快,但总的 来说,w e b g i s 软件产品研发还处于初级阶段,各厂商提供的产品及其技术还不 够成熟。 1 2 2w 曲g i s 发展趋势 地理信息系统技术经过近三十年的发展,已经逐步进入了计算机技术主流, 从而能够在更广泛的领域为更多的用户提供空间信息服务。w e b g i s 新的发展趋 势是g i s 技术和i n t e m e t 技术新的发展方向的体现。主要表现在一下几个方面: l 、网络环境下开放的空间数据交换格式 2 、开放式地理信息系统( o p e n g i s ) 3 、一体化的空间数据管理与分析 4 、基于分布式的w e b g i s 5 、网络虚拟地理环境 6 、移动通信技术在g i s 应用方面的扩展 特别是a j a x 网络应用程序应用及其优势已经改变了传统w e b g i s 平台的开 发模式。主要的w e b g i s 平台纷纷推出基于a j a x 的开发框架。a j a x 的异步请求 响应机制给w e b g i s 带来了更快的响应速度,更高的服务性能和更好的用户体 验。基于a j a x 模式的w e b g i s 已经成为g i s 领域新的研究热点。 1 3 研究内容 本文的研究内容主要有: 1 ) 分析w 曲g i s 技术现状与发展趋势,以及论述w 曲g i s 的原理与技术。 2 ) 分析a j a x 技术原理及a j a x 中的关键技术,阐述了n e tc a l l b a c k 回调机 制。 3 ) 研究基于a r c g i ss e r v e r 框架下的w e b g i s 丌发,重点讨论了a r c g i s s e r v e ra j a x 框架与运行原理、机制,对于a r c g i ss e r v e r 开发技术作了详尽的描 述。 4 ) 研究在a r c g i ss e r v e r 框架下设计实现了w e b g i s 系统,主要内容包括: 系统的总统设计;系统服务平台的搭建;系统框架实现和系统功能实现。 结论,对论文了进行总结,提出今后还要继续完成的工作内容。 1 4 文章结构 根据研究内容,文章的结构安排如下: 第一章:绪论:介绍文章的研究背景和意义;w e b g i s 相关技术及应用的研 2 硕士学位论文第一章绪论 究现状和发展趋势;最后提出文章的研究内容以及文章结构安排。 第二章:介绍a j a x 技术与原理;详细论述了a j a x 中的关键技术及其特点; 最后阐述了微软n e tc a l l b a c k 机制。 第三章:分析了a r c g i ss e r v e r a d fc a l l b a c k 体系结构及其运行原理;详 尽阐述了a r c g i ss e r v e r 开发技术,其中对a r c g i ss e r v e r 的开发方式作了详尽分 析,最后简要叙述了a r c g i ss e r v e r 框架的池化和非池化。 第四章:阐述了网络开发中常用的体系结构:设计以a r c g i ss e r v e r 为平台 的基于m v c 模式的w e b g i s ;简要介绍了g e o d a t a b a s e 模型和a r c s d e 以及相关 的空间数据库存储与管理:详尽阐述了a r c g i ss e r v e r 中的a o 调用以及涉及到 的各种转换;在此基础上设计实现了w e b g i s 系统,主要功能包括:基本操作、 距离面积的测量、标记、查询( 属性查询、空间查询) 、编辑功能、路径规划等。 第五章:对文章进行了总结,提出了进一步研究和改进的方向。 硕士学位论文 第二章a j a x 技术原理和特点 第二章a j a x 技术原理和特点 2 1a i a x 概述 a j a x ( a s y n c h r o n o u sj a v a s c r i p t - i - x m l ) ,即异步j a v a s c r i p t + x m l 。在a j a x 中,使用一系列已有的技术,把它们重新组合。应用a j a x ,意味着用户可以在 基于浏览器的j a v a s c r i p t 和服务器之间建立套接字通讯,实现了一种“丰富 u i 。 当用户点击按钮时,a j a x 应用会实时改变网页内容;它让用户任意拖拽对象, 而不是点击箭头并输入数字;显示有意义的动态行为,而不是冗余的消息;让网 页保持最新的内容而不是迫使用户持续地点击“刷新”按钮。a j a x 不是单一的 技术,而是四种技术的集合。下面章节将详细介绍。 图2 - 1 基于a j a x 的w e b 应用模型 2 2a j a x 技术原理 a j a x 应用程序的加载和传统的w e b 应用程序没什么区别:首先,某个用户 操作( 例如在浏览器中输入u r l ,或者在当前页面中点击一个外部链接) 引发 了浏览器的一次h t t p 请求。然后,服务器处理这个请求,生成合适的h t m l 、 c s s 以及j a v a s c r i p t ,并发送至客户端。最后,客户端浏览器将这一段h t m l 显 示出来。随后,用户在该a j a x 页面上的后续操作将和传统w 曲页面完全不同一 一用户的这些操作将不会引发浏览器的另一次h t t p 请求,取而代之的是将引发 客户端的某段j a v a s c r i p t 代码的执行。下图是a j a x 的异步通讯模型。 4 硕士学位论文 第二章a j a x 技术原理和特点 a j a xw e ba p p l i c a t i o nm o d e l ( a s y n c h r o n o u s ) c l l e n t s e r v e r p 口鼬密- 叼纠寸。瞄翻帕p 口捌嗣n 口纠o “稿柚 图2 - 2 基于a j a x 的异步通讯模型 a j a ) 【技术能让用户能看到正在发生的事情,这是它的异步通讯方式所带来 的优越性。 2 3a j a x 的关键技术 实际上a j a ) 【技术是几项技术按照一定的方式组合在一起的,在共同的协作 中发挥各自的作用,使用x m l h t t p r e q u e s t 进行异步数据读取;使用x m l ,文 本或者x s l t 进行数据转换与处理;使用x h t m l 和c s s 标准化呈现;使用d o m 实现动态显示和交互;最后使用j a v a s c r i p t 绑定和处理所有数据【4 7 - 5 0 l 。下面,将 对应用a j a x 所必须了解的关键技术进行分析,以让我们更好的理解为什么能够 应用在w e b g i s 中。下面章节主要介绍x m l h t t p r e q u e s t 对象和d o m 对象模型。 2 3 1 x m l h t t p r e q u e s t 对象 1 ) x m l h t t p r e q u e s t 概述 x m l h t t p r e q u e s t 最早在i e 5 中以a c t i v e x 组件形式实现的,后来逐渐被各 大浏览器采用。在使用x m l h t t p r e q u e s t 对象发送请求和处理响应之前,必须先 用j a v a s c r i p t 创建一个x m l h t t p r e q u e s t 对象。由于它不是一个w 3 c 标准,所以 可以采用多种方法通过j a v a s c r i p t 来创建x m l h t t p r e q u e s t 的实例。i n t e m e t e x p l o r e r 把x m l h t t p r e q u e s t 实现为一个a c t i v e x 对象,其他浏览器( 如s a f a r i 、 f i r e f o x 和o p e r a ) 把它实现为一个本地j a v a s c r i p t 对象。由于存在这些差别, j a v a s c r i p t 代码中必须包含有关的条件逻辑,从而使用a c t i v e x 技术或者使用本 地j a v a s c r i p t 对象技术束创建x m l h t t p r e q u e s t 的一个实例。 下面代码展示了编写跨浏览器的j a v a s c r i p t 代码来创建x m l h t t p r e q u e s t 对 象实例。 f u n c t i o nc r e a t e x m l h t t p r e q u e s t ( ) t r y r e t u r nn e wa c t i v e x o b j e c t ( “m s x m l 2 x m l h t t p ”) ;) 硕士学位论文 第二章a j a x 技术原理和特点 c a t c h ( e ) ) t r y r e t u r nn e wa c t i v e x o b j e c t ( m i c r o s o f t x m l h t t p ”) ; c a t c h ( e ) ) t r y r e t u r nn e wx m l h t t p r e q u e s t0 ;) c a t c h ( e ) ) 删乍i e a l t e r ( “x m l h t t p r e q u e s tn o ts u p p o r t e d ”) ; r e t u mn u l l ; ) 代码通过检查浏览器是否支持a c t i v e x 技术,来判断是否支持创建一个本地 j a v a s c f i p t 对象,当然在这个过程中,我们通过捕获来处理异常。最后,鉴于在 不同浏览器上都能实现x m l h t t p r e q u e s t 的兼容。 2 ) x m l h t t p r e q u e s t 的属性和方法 x m l h t t p r e q u e s t 提供了很多有用的方法来处理请求,表2 1 列出了主要的 方法,而表2 - 2 列出了主要的属性。 方法说明 a b o r t ( ) 取消当前请求 g e t a l l r e s p o n s e h e a d e r s ( ) 返回h t t p 请求所响应的首部的键 值对 g e t r e s p o n s e h e a d e r ( “h e a d e r ”) 返回指定首部的串值 o p e n ( m e t h o r d ,u r l ”) 建立对服务器的调用 s e n d ( c o n t e n t ) 向服务器发送请求 s e t r e q u e s t h e a d e r ( “h e a d e r ”, “v a l u e )设置首部为指定的值 表2 - 2x m l h t t p r e q u e s t 对象的主要属性 属性说明 o n r e a d y s t a t e c h a n g e 状念改变时触发这事件处理器,通常是一个 j a v a s c r i p t 函数 r e a d y s t a t e 请求的状态。0 :未初始化,l :正在加载,2 :已经 加载,3 :交互中,4 :完成 r e s p o n s e t e x t 服务器的响应,以串的形式返回 r e s p o n s e x m l 服务器的响应,以x m l 的形式返回 s t a t u s服务器的h t t p 状态码,如2 0 0 :o k ,4 0 4 :未找到 s t a t u s t e x th t t p 状念码对应的响应文本,即:o k 等 6 堡主兰堡堡苎苎三兰堑坚塾查堕堡型堕皇 恳+ 9 h e a d 硕七学位论文 第二章a j a x 技术原理和特点 用户不用等待服务器的响应。因此用户可以继续输入数据、滚动屏幕和使用应用 程序。主要特点如下: ( 1 ) 异步性 a j a x 是异步的j a v a s c r i p t 与x m l 相结合,页面刷新时大都在本地异步进 行。并且只是在需要更新的区域局部进行。 ( 2 ) 按需取数据 “按需取数据”的模式减少了数据的实际读取量,当在读取比较大的数据时, a j a ) 【是用x m l h t t p 发送请求得到服务端应答数据,在不重新载入整个页面的 情况下用j a v a s c r i p t 操作d o m 最终更新页面的。还可以无刷新调用外部数据。 ( 3 ) 快速 把以前的一些减轻服务器和带宽的负担,节约i s p 的空间及带宽租用成本; 而且响应高度灵敏,并且可以在一个页面上提供所有数据,无需刷新页面。 ( 4 ) 节约宽带和成本 a j a x 应用中可以把以前的一些服务器负担的工作转嫁到客户端,利于客户 端闲置的处理能力来处理,减轻服务器和带宽的负担,节约空间和带宽租用成 本 ( 5 ) 标准化 基于标准化的并被广泛支持和技术,并且不需要插件或下载小程序; ( 6 ) 界面与应用分离 a j a x 使w e b 中的界面与应用分离1 4 扪。 2 5 n e tc al lb a c k 回调机制 客户端回调是a s e n e t 中一个非常好的特性,可以从客户端的j a v a s c r i p t 通过x m l h t t p 方式调用服务器端的代码,也就是一般我们讲的a j a x t 4 7 1 。在 a s e n e t 2 0 中有一套简单方法处理注册h t t p h a n d l e r ,p a g e 类型等,来完成客户 端回调,这个接口就是i c a l l b a c k e v e n t h a n d l e r ,为了实现客户端回调p a g e 类必 须来实现这个接口。它有两种方法: r a i s e c a l l b a c k e v e n t :处理以控件为目标的回调事件,这个方法将在客户端 脚本调用服务器代码时来执行; g e t c a l l b a c k r e s u l t :返回以控件为目标的回调事件的结果,结果通常被 r a i s e c a l l b a c k e v e n t 和存储在一些类中成员变量返回。 脚本回调技术( s c r i p tc a l l b a c k ) 依赖于文档对象模型( d o m ) 的 x m l h t t p r e q u e s t 对象,在i n t e m e te x p l o r e r 中,此文档对象模型对象( d o mo b j e c t ) 通过a c t i v e x 控件( a c t i v e xc o n t r 0 1 ) 实现m i c r o s o r x m l h t t p 。在i e 中浏览这 样的页面时,必须适当降低安全设置以允许a c t i v e x 控件( a c t i v e xc o n t r 0 1 ) n g 被脚 8 硕士学位论文第二章a j a x 技术原理和特点 本调用。最突出的例子也许是g r i d v i e w 控件( g r i d v i e wc o n t r 0 1 ) ,作为d a t a g r i d 的接班人,选择性地运用脚本回调( s c r i p tc a l l b a c k ) 卿g 分页显示记录。这种技术 怎么在a r c g i ss e r v e r 中应用,将在3 3 1 和3 3 2 中讲解。 9 硕士学位论文第三章基于n e t 的a r c g i ss e r v e r 开发研究 第三章基于n e t 的k e g iss e r v e r 开发研究 3 1a r c giss e r v e r 的体系结构 a r c g i ss e r v e r 是一个发布企业级g i s 应用程序的综合平台,提供了创建和 配置g i s 应用程序和服务的框架,可以满足各种客户端的各种需求。在a r c g i s 桌 面环境中存在各种g i s 工具,如展现g i s 数据可以用a r c m a p 、a r c g l o b e ,根据 位置寻址可以使用a d d r e s sl o c a t o r ,对数据进行分析操作可使用a r c t o o l b o x 的 g e o p r o c e s s i n g 工具,这些包含了不同级别的g i s 功能,从底层来看,都是通过 a r c o b j e c t s 来实现这些的。 一般情况下,考虑要处理的数据是a r c m a p 的m x d 文档、a r c g l o b e 的3 d d 文档、还是a d d r e s sl o c a t o r s 等,相应地,用服务的概念来对它们进行描述,这 些服务可以是m a ps e r v i c e s 、g l o b es e r v i c e s 、g e o c o d es e r v i c e s ,g i s 资源依托这 些服务存在,当需要在g i ss e r v e r 上共享一个地图时,就使用该地图的m x d 来 定义一个m a ps e r v i c e 。可以看出,a r c g i ss e r v e r 的目的就是宿主各种服务,并 为客户端应用提供这些服务资源,另外,a r c g i ss e r v e r 提供了一个管理程序 来对服务进行控制与管理。a r c g i ss e r v e r 体系结构可以用下图来描述: t h ea r c g i ss e r v e rs y s t e ma r c h i t e c t u r e c b n t 图3 1a r c g i ss e r v e 9 2 的体系结构图 l o 硕士学位论文第三章基于n e t 的a r c g i ss e r v e r 开发研究 在w e b 层主要负责用户通过w e b 浏览器发送的请求,并根据用户请求从g i s 服务器中获取相应的服务器对象的代理。g i s 服务器层是运行服务器对象的宿 主。它由服务器对象管理器( s o m ) 以及一个或多个服务器对象容器( s o c ) 组成。 服务器对象管理器是一个运行在某一台机器上的w i n d o w s 服务。它管理了一组 分布在一台或者多台作为服务器对象容器计算机中的服务器对象的启动和关闭, 同时对服务器对象容器计算机进行负载平衡的动态调节。服务器对象容器则是负 责管理服务器对象初始化,管理和销毁。此外服务器对象容器计算机中还部署了 a o 组件,系统服务器端所有的g i s 功能都是在服务器对象容器中负责处理与运 算。 3 2a r c giss e r v e ra j a x 框架分析及运行原理 3 2 1a r c g i ss e r v e ra d fc a i i b a c k 体系结构 a r c g i ss e r v e rw e ba d f ( a p p l i c a t i o nd e v e l o pf r a m e w o r k ) 是a r c g i s 专用 w e b 程序开发框架,分为n e t 和j a v a 两个开发版本。在a s p n e t2 0 中,客户端 是通过回调管理器提供了一个扩展框架来实现回调,在a s p n e t2 0c a l l b a c k 基 础上,a r c g i ss e r v e r 提出了a d fc a l l b a c k 框架,实现了对包含有a d f 组件页面 的异步数据调用和局部无刷新显示,a d fc a l l b a c k 框架主要内容包括: 1 j a v a s c f i p t 函数库 在a s p n e t2 0 回调中,服务器处理完成并返回浏览器,j a v a s c r i p t 解析返回 值并利用浏览器d o m 技术动态更新页面。为支持a d f 组件的异步局部刷新, a d fc a l l b a c k 框架提供了庞大的客户端j a v a s c f i p t 函数库,j a v a s c r i p t 函数库包 括众多j s 函数和方法。a d f 组件在服务器预先封装j a v a s c f i p t 函数库方法, 系统运行时,客户端初始化加载页面,j a v a s c f i p t 代码以工作流方式嵌入到浏览 器,一旦用户发生触发操作,j a v a s c f i p t 代码将生成x m l h t t p r e q u e s t 对象与服务 器异步通信,响应返回时j a v a s c r i p t 代码解析字符串并调用方法动态更新页面。 2 各种a d f 控件 a d f 控件是a d fc a l l b a c k 框架中服务器与客户端交互的接口,a d f 控件通 过已有或定制工具及命令定义不同的客户端操作,a d f 控件运行时必须与地图 控件数据绑定。在a d fc a l l b a c k 框架中,a d f 控件内部封装c a l l b a c k 机制。在 w e b 开发中,客户端通过工具条与页面其他a d f 控件交互操作,在客户端操作 产生回调事件,服务器接收回调并执行自定义类,在自定义类中访问g i s 资源 将结果返回客户端页面。值得注意的是,如果要实现回调功能,在自定义类中应 根据工具类型继承其相应接口。 硕士学位论文 第三章基于n e t 的a r c g i ss e r v e r 开发研究 表1a d f 控件继承接口 工具类型 t 0 0 l 继承接口描述 i m a p s e r v e r t o o l a c t i o n c o m m a n d i m a p s e r v e r c o m m a n d a c t i o n d r o p d o w n b oi m a p s e r v e r d r o p d o w n b o x a c t xi o n 客户端操作激活并在服务器端初始 化后才能与地图控件进行交互 客户端点击后产生服务器端操作 必须由客户端选择操作后产生操作 3 a d f 组件 框架中大部分w e ba d f 组件封装实现了i c a l l b a c k e v e n t h a n d l e r 接口,a d f 组件能处理客户端回调请求并返回处理响应。w e ba d f 组件内容在服务器修改 后,修改信息存储在c a l l b a c kr e s u l t s 属性并产生一个回调响应返回客户端。 一般而言,a d fc a l l b a c k 框架客户端触发如果由工具栏控件产生,其产生的 回调能自动发送回客户端。但当普通a s p n e t 控件触发并在返回浏览器时需要动 态更新客户端a d f 组件时,此时就必须从服务器端a d f 组件c a l l b a c kr e s u l t s 属性中获取其响应信息,并将其返回客户端。 4 回调相关类 c a l l b a c kr e s u l t s 存储当前服务器回调信息,a d f 组件c a l l b a c kr e s u l t s 属性 返回集合类c a l 】b a c k r e s u l t c o j l e c t i o n ,此集合类也包含自定义c a l l b a c kr e s u l t s 对 象,自定义c a l l b a c kr e s u l t s 对象可与页面其他组件( 如:h t m l 表格,g r i dv i e w , 图像,文字) 进行交互。这样做的最大好处在于到服务器响应字符串返回浏览器 后,可以利用a d fj a v a s c f i p t 脚本库进行解析,而无须编写特定j a v a s c r i p t 代码。 页面普通a s p n e t 刷新控件可通过客户端回调管理器的w e b f o r m _ d o c a l l b a c k 0 函 数参数定义,也可通过服务器端参数“c a l l b a c k i d 获取。 i f ( p a g e i s c a l l b a c k ) s t r i n gc o n t r o l i d = r e q u e s t p a r a m s 【t _ - c a l l b a c k i d ”】; c o n t r o lc o n t r o l = p a g e f i n d c o n t r o l ( c o n t r o l - i d ) ; 5 回调事件 a d f c a l l b a c k 框架中刷新a d f 组件或者普通a s p n e t 控件时,为存储回调 信息须构建c a l l b a c k r e s u l t 对象,同时通过事件参数的选择确定客户更新内容( 如 表2 ) ,其构造函数为: c a l i b a c k r e s u l t ( s t r i n gc o n t r o l t y p e ,s t r i n gc o n t r o l l d ,s t r i n ge v e n t a r g ,o b j e c t 【】 p a r a m e t e r s ) 硕士学位论文第三章基- pn e t 的a r c g i ss e r v e r 开发研究 表2 回调事件参数 从表2 可以看出,返回到客户端的字符串既可以用来刷新页面元素来控制界 面内容和布局,同时也可以执行j a v a s c r i p t 函数。 3 2 2a r c g i ss e r v e ra d fc al i b a c k 运行机制 a r c g i ss e r v e ra d fc a l l b a c k 框架中在客户端既可选择工具条等a d f 组件, 也可选择普通a s p n e t 控件进行回调响应请求发送,两种发送方式原理内部统一 于a s p n e tc a l l b a c k 机制。客户端页面加载初始化后,浏览器一旦触发回调事件, 脚本函数负责处理回调信息及相关的上下文,并调用a s p n e t2 0 中 w e b f o r md o c a l l b a c k 函数将回调请求返回服务器,其实质上就是利用 m i c r o s o f t x m l h t t p 组件创建一个新的h t t p r e q u e s t 对象,并将客户端请求异步 发送回服务器,其格式如下: w e b f o r m d o c a l l b a c k ( m a pl ,a r g u m e n t ,p r o c e s s c a l l b a c k r e s u l t ,c o n t e x t , p o s t b a c k e r r o r , f a l s e ) 客户端回调请求到达后,服务器初始化并调用继承i c a l l b a c k e v e n t h a n d l e r 接1 2 1 的a d f 组件或者p a g e 的r a i s e c a l l b a c k e v e n t o 方法获取回调请求字符串后, 定义r a i s e c a l l b a c k e v e n t o 方法处理回调请求,不同组件处理结果分别存入 c a l l b a c kr e s u l t s 对象,处理结果由g e t c a l l b a c k r e s u l t 0 返回。在a d fc a l l b a c k 框 架中提供p r o c e s s c a l l b a c k r e s u l t 方法处理返回客户端的回调响应,在回调响应返 回客户端后,p r o c e s s c a l l b a c k r e s u l t 函数根据事件参数解析客户端回调响应字符 串并调用其他a d fj a v a s c r i p t 函数库的其他方法解析d o m 元素并更新页面。 硕士学位论文第三章基于n e t 的a r c g i ss e r v e r 开发研究 圈3 - 2 旰c a i ib a c k 运行机制原理图 323a r c g l ss e r v e r 中的无刷新回调实现 1 a r c g i ss e r v e r 中的无刷新回调解析 在a r c g i ss e r v e r 开发,首先要理解地图的刷新回调。i c a l l b a c k e v e n t h a n d l e r 是n e t 中实现页面无刷的接口,a r c g i ss e r v e r 就是用这个接口来实现的无刷。 这个接口主要有两个方法: 1 ) s t r i n gi c a l l b a c k e v e n t h a n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电线杆线描写生课件
- 电票知识及防范培训课件
- 北京市考试最难的题目及答案
- Diethyl-2-hydroxy-3-methylsuccinate-13C-MALIC-ACID-3-METHYL-DIETHYL-ESTER-sup-13-sup-C-生命科学试剂-MCE
- 北京安全员a考试试题及答案
- 北大数学期末考试试题及答案
- 公共卫生考试题及答案
- 苏州中考试题及答案
- 信天游考试题及答案
- 高校应急知识培训内容课件
- 2025秋人教部编版二年级上册语文教学计划
- 2025年山东省菏泽市中考英语真题(无答案)
- 2025劳动合同书示范文本下载
- 科学护肤知识课件
- 急性阑尾炎病人护理课件
- 2026年高考政治一轮复习:高考政治主观题背诵提纲汇编
- 骨科手术切口感染的预防与控制
- 电商数据分析报告顾问合同
- 电子信息类专业导论(第3版)课件全套 张有光 00 课程简介 - 12 中国大学教育:理念与实践
- 馕小屋管理办法
- (2025)全国辅警考试题库及答案
评论
0/150
提交评论