基于XML WebGIS 架构及实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于XML WebGIS 架构及实现

基于XML WebGIS 架构及实现摘要: ArcIMS 是开发WebGIS的有力工具,而ArcXML则是ArcIMS中通信的标准语言,负责描述客户端请求与服务端响应。但在.NET平台下ArcIMS 对封装ArcXML语句显得能力不足,针对此,本文提出了利用.NET Web Service 来架构WebGIS,将基本的ArcXML请求响应语句封装起来,提供基本的地图功能,从而屏蔽了底层细节,简化了ArcIMS的二次开发。 关键字:WebGIS、ArcIMS、ArcXML、Web Services、平台 中图分类号:TP311.5 文献标识码: A 文章编号: 引言 ArcIMS[1]是ESRI公司推出的基于Internet 的GIS系统开发软件,它凭其严谨的体系结构,丰富的定制方式,跨平台和分布式的特点,已成为目前最常用的WebGIS实现方式。Microsoft .NET[2]是微软公司提出的一种分布式运算的框架,是为Web Services准备的开发和部署平台。如何使.NET与ArcIMS结合开发是很值得研究的内容。 随着 ArcIMS 9的发布,提供了一种新的连接器——.Net Link来加强对. Net开发环境的支持[3]。.Net Link是 对 ActiveX 连接器的扩展。不但增强了对应系统管理的消息处理,也有了许多性能上的提高。 但.Net Link不像其前辈ActiveX 连接器那样成熟,通过一系列API来定义、生成ArcXML文件中的节点与属性。而仅仅是对XML文件的一种搭配与组装,对ArcXML请求响应语句没有很好的封装。开发人员需要面对大量ArcXML中的子元素及其属性设置,开发过程比较繁琐。 针对此,本文利用.NET核心技术——Web Services来架构WebGIS,目的是为了方便WebGIS基础开发和地图基本功能的集成,也便于日后的功能扩展。 用.NET Web Service 架构WebGIS 本文针对ArcIMS 开发方式上的不足,提出了一个基于Web Services 的空间信息服务平台体系结构。通过对其核心语言ArcXML的剖析与封装来改进其在.NET环境下的开发过程。 2.1模型结构及业务流程 参考OGC和W3C的Web Services体系结构[3],在ArcIMS开发运行环境下,提出了一个空间信息服务平台模型结构如图所示 整个架构由客户层、服务层与数据层构成,其中服务层是整个模型结构的重心,定义空间数据操作接口规范,如函数名称,参数名称以及调用规范。它包括功能服务体系和数据服务体系及其他服务。并且它们相互之间可以提供服务(这种方式被称为“服务链”)。 该模型的运行流程为: (1)空间信息服务平台对于数据的操纵和处理,编写相应的Web Services功能模块,并以WSDL的形式描述这些功能,且将服务发布到公共注册中心供用户搜索。同时注册中心还对用户进行认证,且为每个地理信息服务提供各自的调用和返回数据接口。 (2)客户端 GIS 应用程序通过注册中心查询服务平台提供的各种地理信息网络服务,然后通过应用服务器提出绑定请求,获取服务的描述和接口信息。 (3)应用程序调用Web Services,实现对数据的操作和处理。 2.2 Web服务具体实现过程 下面还是以缩放操作为例,给出具体的实现过程: 首先设计了类 Rect ,它的主要用途是保存当前地图的四周坐标,并在每次缩放操作后动态更新。类Rect的具体结构如下: 私有成员:private static float left, right, bottom, top; 保存地图边界 公有方法:public static float[] getrect() 用于获取当前的坐标值 public static void setrect(float a, float b, float c, float d) 每次缩放或平移操作后更新其私有成员的值。 利用GetMap服务解析出地图的初始坐标,并给Rect类设初值。 下面是关键代码段: XmlNodeList nodelist2=root2.GetElementsByTagName(“ENVELOPE”); if (nodelist2!=null) { XmlNode urlnode2=nodelist2.Item(0); float x,y,x2,y2; x=float.Parse(urlnode2.Attributes[“minx”].InnerXml); y=float.Parse(urlnode2.Att

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档