MapGuide open source开发系列教程四: 体系结构(转贴)

本文转自
http://gisman.blogchina.com/5346547.html

本来,下面的资料,在英文教程上有,但为了推广MapGuide os在国内的使用,所以特意转了这篇中文。

第二章 MapGuide技术分析

2.1 MapGuide概述与特点

MapGuideAutodesk公司推出的在网络上发布空间数据的新一代Web GIS平台,为了促进开源Web GIS的发展,Autodesk公司推出了开源版的MapGuide,同时还有商业版MapGuide,开源版本与商业版本相比,软件构架与功能相同,只是开源版本仅支持的数据格式较少,目前支持shpsdfArcSDEMySQLODBCRASTERWMSWFS,要支持其他格式的数据或者数据库则需要购买MapGuide 商业版或者由用户自行开发数据处理组件。

MapGuide具有如下特点:

跨平台支持。新一代的MapGuide支持WindowLinux操作系统。

支持多种浏览器。MapGuide提供两种Viewer, DWF ViewerAJAX ViewerDWF Viewer使用ActiveX控件,只支持IE浏览器。AJAX Viewer支持Fire fox, Opera浏览器。

支持多种数据格式。MapGuide使用FDOFeature Data Object)存取数据,MapGuide提供多种数据的FDO,如sdfshpOracleSqlServerWFSWMS等多种数据源。

提供内容丰富的API,简化二次开发。MapGuide 提供.NETPHPJSP三种语言的API,可以对地图数据按照要求进行相应修改,显示,用户可以根据不同条件选用相应的开发语言。

集成多种GIS功能。MapGuide API可以进行属性查询和空间查询,MapGuide API包含一系列坐标系的函数,可以 方便地完成坐标转换等功能。

2.2 MapGuide 框架结构

MapGuide采用典型的网络三层结构,支持WindowsLinux操作系统,支持多种浏览器,用户可选择安装DWF Viewer Active控件或使用支持Javascript的浏览器进行浏览。 MapGuide由以下四部分组成:

MapGuide Server

用于与空间数据直接交互,并处理MapGuide Web Extension发出的请求,MapGuide Server支持WindowsLinux平台。

MapGuide Web Extension

也称为Web Server,是网络结构的中间层,用于转发IIS (Internet Information Service) 的请求,并向MapGuide服务器发出相应的请求。MapGuide Web Extension支持IISApache (Windows平台) Apache (Windows Linux平台),它提供一系列完整的API,可以用这些API进行定制开发。MapGuide Web Extension支持三种语言的开发,分别是PHPASPJSP

MapGuide Studio

是一个用于地图管理的工具,为了用户方便, Studio内部集成了浏览器,用户可以用Studio进行所见即所得的便捷管理,MapGuide Studio只能安装在Windows平台。

MapGuide Viewer

用于在浏览器中对地图进行浏览,编辑等,它提供两种Viewer, DWF ViewerAJAX Viewer,由于DWF ViewerActive控件,所以它只支持Microsoft IEInternet ExplorerAJAX Viewer支持Fire fox, Opera (Mac) 浏览器。

3描述了MapGuide的框架结构StudioViewerMapGuide的客户端程序,从这些客户端发出请求,通过HTTP协议发送到Web Externsion, Web ExternsionAgent组件对请求进行处理并发送相应请求到MapGuide Server。当服务器 (Server) 接收到一个请求时,它按照请求的内容,存取或者修改仓库(Repository)中的数据,并将相应的结果返回给Web Extension,然后由Web Extension返回给客户端Viewer

MapGuide StudioViewer使用DWF ViewerAJAX ViewerViewer完成对地图进行显示、修改、分析等功能。

<!--[if !vml]-->
<!--[endif]-->

3 MapGuide框架结构

2.3 MapGuide API研究

MapGuide API包含两类,Web Tier APIViewer APIWeb Tier API是一系列服务端API,功能强大,基本上覆盖了GIS系统需要的所有函数。Viewer API是客户端API,在Web页面脚本中执行,与Web Tier API相比,功能简单,完成一些客户端常用的功能,如放大缩小、平移、选中、打印,简单数字化等功能,进一步的复杂功能需要调用Web Tier API,进行服务端和客户端交互开发。

Web Tier API是服务端API,在.NETPHPJSP中被调用,Web Tier API包含如下模块的类:

资源服务: 用于操纵资源和数据库

坐标系统:用于坐标系统转换

集合:用于存放对象的集合,比如查询返回的几何对象集合

绘制服务:在底层调用函数绘制DWF数据

<!--[endif]-->几何对象:几何对象API支持二维对象和2.5维对象,并包含对二维对象的分析等函数

通用类:提供一些通用函数,如ByteReaderMimeTypeWarnings、时间和颜色等。

站点服务:用于配置用户、用户组和用户进程等

Exception:包含一些与MapGuide相关的例外

渲染服务:将一幅地图渲染成BMP图像

服务:支持在AJAX VIEWER中平滑平移和放大缩小等功能

地图服务:提供地图和图层的控制函数

Viewer API是客户端API,在Web页面的脚本中执行,所以Viwer API是一类用来控制ViewerJavaScript函数,由于MapGuide提供对两类浏览器(IEFireFox)的支持,Viewer API实际上是这两类浏览器的统一接口,这一类函数提供对地图的一些通用功能。如果用户只需要支持IE,可调用DWF ViewerJavascript函数,与统一接口相比,这些函数提供了更强的功能。很多函数会产生服务端的请求,如刷新数据或者通知服务器Viewer状态变化,这些请求自动产生,无须人工干预。

应用MapGuide API可以方便地进行二次开发。可以根据需求进行相应的二次开发,studio提供了Commands接口,支持Javascript函数调用和页面调用,用户可以应用这些接口调用Viewer API或者Web Tier API进行简单开发,定制一些简单的功能。另外,用户可直接应用Web Tier APIVeiwer API开发独立的Web程序,根据需求开发完成较为复杂的功能。

本论文即在.NET环境下服务端调用Web Tier API开发一个独立的Web程序。

你可能感兴趣的:(open source)