版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于OGC标准的GET和POST请求的WMS实现摘要:本文介绍了WebService及其相关技术开展现状,并详细阐述了OGC标准中WMS的相关标准与要求。结合需要,自主在VS 2005 C#平台下实现了WMS的效劳开发与用户测试,并进行了相关技术总结与归纳。论文关键词:WebService,OGC,WMS效劳近几年WebGIS 取得了快速开展,其应用也扩展到GIS应用领域的各个方面。但传统的WebGIS软件技术中仍存在一些局限,具体表现在:并发处理能力差,响应速度慢;系统的异购兼容性缺乏。解决传统WebGIS软件的上述问题,Web Services技术以及.NET,J2EE等主流开发平台为我们
2、提供了很好的解决方案。本文的目的就是要弄清楚Web Services技术架构,并且分析如何采用基于.net的开源库Sharpmap,实现符合OGC(Open Geospatial Consortium)标准之一Web Map Service的网络地图效劳。证明采用Web Services技术封装与发布空间数据,实现地理信息系统的功能变为Web效劳的可行性。2 相关技术介绍2.1 WebService介绍及相关技术Web Service的实现包括三个核心技术:UDDI(统一描述,发现和集成协议Universal Description,Discovery and integration)用于标准
3、效劳的注册,查找和发现过程,WSDL网络效劳描述语言Web Service Description Language用于标准效劳的描述,SOAP简单对象访问协议Simple Object Access Protocol用于标准调用效劳时采用的通讯协议。Web Service的工作流程如图【1】所示:图【1】 Web Service工作流程Web Service是由一系列的协议组成,Web Service的协议栈如图【2】所示,当然目前的协议栈还在不断的扩展,有进一步开展的巨大空间:图【2】 Web Service协议栈从以上的协议栈看:下面两层是先前已经定义好的并且广泛使用的传输层和网络层的标
4、准,如:IP, ,SMTP等。而中间的四层是目前开发的Web Service的相关标准协议,也是Web Service的核心技术,包括效劳调用协议SOAP、效劳描述协议WSDL,效劳发现/集成协议UDDI,以及效劳工作流描述语言WSFL。最上层描述的是更高层的待开发的关于路由、可靠性以及事务等方面的协议。右边的局部是各个协议层的公用机制,这些机制一般由外部的正交机制来完成。以下主要介绍协议栈的三个主要协议具体表达在效劳调用的时候的角色以及分工:如图【3】在机器B上部署Web Service效劳,在机器A上部署着调用该效劳的站点。A发送请求给B,B发送响应给A。他们通讯的协议是 ,发送请求和相应
5、的数据格式都是基于XMLSOAP的数据,A机器的代理和存根真正负责起A与B之间效劳的调用。WSDL是用于描述A与B通讯接口的协议;UDDI相当于我们的 黄页簿,所有的Web Service效劳可以在UDDI上进行处理,即需要在UDDI上注册WSDL文档。因此整个调用的过程我们可以描述如下:A要调用B的某个效劳,它可以先到UDDI效劳器上去查找描述效劳的WSDL文档。生成WSDL Proxy,然后再与机器B上的WSDL Stub通讯,这样我们可以明确Web Service调用中的通讯协议,消息格式,描述语言以及发现机制分别如图【3】中所示。图【3】 Web Service调用过程图2.2 OGC
6、标准的WMS的相关标准OGC WMS属于OGC图示表达效劳,在WMS标准中将地图定义为地理数据可视的表现,WMS返回的不是地图数据,而是地图图象,WMS标准定义了三个操作:GetCapabilities操作返回效劳级元数据,它是对效劳信息内容和请求参数的一种描述,元数据使用XML形式文件表示;GetMap操作根据客户端发出的请求参数在效劳端进行检索,效劳器返回一个地图图象,其地理空间参数和大小是已经明确定义的,返回的地图图象可以是GIF,JPEG,PNG或SVG格式的;GetFeatureInfo操作根据用户请求的X,Y坐标或感兴趣的图层,返回这些特殊要素的信息,信息以HTML,GML或者AS
7、CII格式表示。在 WMS 中GetMap是最重要的一个接口。GetMap的参数有很多,在调用时必须的主要参数如表【1】:请求参数定义请求版本号REQUEST=GetMap请求的名称LAYERS=layer_list以逗号分隔的图层列表STYLES=style_list以逗号分隔的每层渲染样式列表CRS=namespace:identifier空间参考系统BBOX=minx,miny,maxx,maxy矩形框四角的SRS坐标WIDTH=output_width地图图象的宽度HEIGHT=output_height地图图象的高度FORMAT=output_format地图的输出格式表【1】 Ge
8、tMap主要调用参数用户可以通过标准的浏览器向WMS发送地图效劳请求,请求的方式可以通过在URL中添加请求的类型参数来实现。WMS的GetMap操作支持分布式的地图效劳网络来提供应用户。以下给出请求的字符串:在该字符串前再加上完整的域名或者固定的IP地址,就可以返回得到该字符所制定的具体的地图图像。SharpMap是一个基于.net 2.0使用C#开发的Map渲染类库,可以渲染各类GIS数据目前支持ESRI Shape和PostGIS格式,可应用于桌面和Web程序。SharpMap的发布许可License为GNU General Public License,实现了以下功能:1)支持的数据格式
9、:PostGreSQL/PostGIS,ESRI Shapefile,支持WMS layer支持ECW 和JPEG2000 栅格数据格式;2)Windows Forms 控件,可以移动和缩放;3)通过 Handler支持ASP.net程序;4)点、线、多边形、多点、多线和多多边形等几何类型和几何集合GeometryCollections等OpenGIS简单要素标准;5)可通过Data Providers增加数据类型支持、Layer Types增加层类型和Geometry Types等扩展;6)图形使用GDI+渲染,支持anti-aliased等;7)专题图。3 实验结果数据:安徽省的shape
10、数据;开发环境:VS2005,IIS;开发语言:c#。实现步骤:1)新建一个WebService,实现WMS的函数:GetMap,Getcapabilities;2)配置Webcong,使该WebService支持GET和POST请求两种方式;3)GET方法实现如下:第一步:新建 website,获取 GET请求的相关参数;第二步:通过GET方法,根据上一步参数调用新建的WebService,获得地图字节流;第三步:所获得的字节流是以XML文档传输的,并对地图字节流采取一定的编码方式,对该XML文档进行解译,并对字节流进行解码,获得地图的原始数据;第四步:将所获得地图渲染出来;第五步:利用II
11、S发布WebService和 website即可。效果如图【4】和图【5】:所给请求字符串1:所给请求字符串2: 图【4】 图【5】 图【6】 POST界面4)POST方法实现如下:第一步:新建 Website;第二步:设计POST界面如图【6】所示,主要包括REQUEST描述,POST地址,POST数据;第三步:获取post地址,及要post的相关数据,利用该值初始化 WebRequest对象,设置POST方法,利用 WebResponse 获得post的XML,对该XML文档进行解译,并对字节流进行解码,获得地图的原始数据;第四步:将所获得地图渲染出来;第五步:利用IIS发布 websit
12、e即可。核心代码如下:public byte GetMap(string UserRequest)byte bytesmap=null;byte bytesmap1 = null;。string splitstringLower = splitstring.ToLower();/Request中的参数名称大小写不敏感,因此在涉及到参数名称时,使用splitstringLower,涉及到参数值时,使用splitstringint exist = splitstringLower.IndexOf(request);if (exist = 0)string requestvalue = splits
13、tring.Split(new char = );haveREQUEST = true;REQUEST = requestvalue【1】;break;img.Save(MS, imageEncoder, null);img.Dispose();byte buffer = MS.ToArray();bytesmap = buffer;return bytesmap;POST方法获得地图数据,并渲染地图:protected void Page_Load(object sender, EventArgs e)# region 创立 WebRequest对象string service = Sess
14、ion.ToString();。image.Dispose(); / 释放图像资源using (MemoryStream ms = new MemoryStream()/ 采用二进制流的方式输出图片newImage.Save(ms, ImageFormat.Jpeg);/图片格式指定为JpegResponse.ClearContent();/去除缓冲区流中的所有输出Response.ContentType = image/jpeg;/输出流的 MIME类型设置为image/PngResponse.BinaryWrite(ms.ToArray();/输出图片的二进制流newImage.Dispo
15、se();/ 释放图像资源Response.Flush();/ 输出Response.End();4 结论.NET是 Microsoft用以创立Web效劳平台,该平台将信息、设备和人以一种统一的、个性化的方式联系起来。借助于.NET平台,可以创立和使用基于XML的应用程序、进程和Web站点以及效劳。通过.NET,所有的联网设备共同组成了一个无处不在的分布式计算平台,能够进行最有效的计算。通过Web Service,用户可以在任何时间、任何地点、通过任何设备获得信息。Web Service的出现,改变了网络软件开发的方式,甚至改变了网络软件的使用方式。从开发方式来讲,Web Service就是网络上的组件,可以使用Web Service构建基于组件的WebGIS软件。而从使用方式来看,WebGIS软件的开发已经不局限于网络制图,网络数据的交换等功能,目前已经在向效劳使用的方向
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 抗利尿激素不适当分泌综合征(SIADH)规范化诊断
- 山东潍坊历年试题及答案分享
- 教师心理测试题目及答案解析
- 汽修初级理论试题及答案
- 2026年托克逊县网格员招聘笔试备考题库及答案解析
- 材料考试综合题目和详细答案
- 2026济源产城融合示范区第三批公益性岗位招聘32人笔试备考题库及答案详解
- 2026河北石家庄赞皇县招聘公益性岗位35人笔试参考题库及答案详解
- 2026年福建省永安市第三中学初中校临聘教师13人笔试备考题库及答案详解
- 2026河北秦皇岛招聘临时公益性岗位170人考试备考题库及答案详解
- 2024年云南省职业技能大赛(物联网安装调试赛项)理论参考试题库(含答案)
- 《2025患者身份识别管理标准》解读
- 《中华人民共和国水法》解读培训
- 教师信息化培训材料
- 九年级数学教学计划与实施方案
- 危楼拆除安全培训课件
- 开采加工11万吨油砂、生产3万吨沥青油及8万吨尾砂项目可行性研究报告
- 西藏双语应急知识培训班课件
- 贵州省望谟县2025年上半年公开招聘城市协管员试题含答案分析
- 心率失常教学课件
- 癫痫的中医护理
评论
0/150
提交评论