在技术特点、功能、架构等方面,MapGuide与其他WebGIS产品有什么区别?本文主要从此角度来介绍MapGuide的特性,以供参考。
    本人选择了比较熟悉的几款WebGIS产品:MapServer(开源项目)、MapXtreme(MapInfo)、ArcIMS(ESRI)、ArcServer(ESRI),与MapGuide(开源项目)相比较。
    由于本人未对国内的WebGIS产品如SuperObjects.Net、MapGIS-IMS实践过,所以没有包含在对比产品内,如有阅者熟悉可提供资料,万分感谢。

1、产品总体概述
     1)MapServer
     开源项目;跨平台;支持ASP.NET、JAVA等的应用开发;框架结构可参阅本人有关对MapServer的分析文章。
     2)MapXtreme
     MapInfo商用平台(10-20W/1 RMB);包含MapXtreme for Windows和MapXtreme for Java两个版本;MapXtreme for Windows无C/S、B/S架构之分,既为C/S嵌入式开发的GIS产品,又为WebGIS产品;支持ASP.NET、JAVA等的应用开发。
     3)ArcIMS
     ESRI商用产品(15+/-W/1 RMB);跨平台支持;支持ASP.NET、JAVA等的应用开发;体系架构可参阅ESRI产品说明书。 
     4)ArcServer
     ESRI商用产品;跨平台支持;ArcIMS的企业级版本;支持ASP.NET、JAVA等的应用开发;体系架构可参阅ESRI产品说明书。
     5)MapGuide
     开源项目;跨平台支持;MapServer的Enterprise版本;支持ASP.NET、JAVA等的应用开发;体系架构可参阅“面向企业级的开源WebGIS解决方案--MapGuide(介绍)”。

2、总体功能对比
    通过功能参数对比分析。选择的技术参数综合了各大WebGIS产品服务特点,包含:
    1)Metadata/Resource:元数据服务/资源服务
    2)Feature:要素特性(MapTip功能表现、矢量流数据表现)
    3)Image:地图绘制服务
    4)Rendering:图层渲染服务
    5)Editing:地图编辑服务
    6)Routing:路径服务
    7)Query:查询服务
    8)Extract:裁减矢量数据并支持下载服务
    9)WMS:支持并提供WMS服务
    10)WFS:支持并提供WFS服务
    11)DataInteroperability:支持多源数据访问,提供数据互操作服务
    12)Tile:瓦片地图服务

MapGuide

MapServer

MapXtreme

ArcIMS

ArcServer

Metadata/Resource

Y

Y

Y

Y

Y

Feature

Y

N

?

Y

Y

Image

Y

Y

Y

Y

Y

Rendering

Y

Y

Y

Y

Y

Editing

?

N

Y

*

Y

Routing

?

N

*

*

Y

Query

Y

Y

Y

Y

Y

Extract

?

N

Y

Y

Y

WMS

Y

Y

Y

Y

Y

WFS

Y

Y

Y

Y

Y

DataInteroperability

Y

Y

N

*

*

Tile

Y

*

N

N

N

参数说明:
     Y-- 满足
     N-- 本身不能满足
     ? -- 不知
     * -- 本身不满足,可通过现有技术集成满足

对比表中*项解释如下:
     1)MapServer-----Tile:基于MapServer的Ka-Map应用框架可以实现;
     2)MapXtreme-----Routing:通过MapInfo Routing J Server或开发扩展算法实现;
     3)ArcIMS-----Editing:通过ArcSDE Client API实现简单编辑;
     4)ArcIMS-----Routing:通过NetEngine或开发扩展算法实现;
     5)ArcIMS-----DI:通过DDE(FME的Web产品,ESRI采购SAFE的FME产品)实现;
     6)ArcServer-----DI:通过ESRI的DI模块(FME)实现;

另外,ArcIMS的Feature Service和Image Service不能共用,ArcIMS以Feature Server发布的WebGIS可实现MapTip功能,但需JVM支持;MapGuide即可以Image绘制地图,又可实现MapTip功能,如下图:

通过对比表分析,可以得出:MapGuide在DataInteroperability和Tile具备独特的优势(实现Tile不存在技术难度,但将Tile作为定制服务封装于产品之中仅MapGuide,其他产品本身不具备)。
    MapGuide通过FDO(FeatureDataObjects) Provider实现多源、不同空间数据结构的统一访问和表现,而不必将其他空间数据转换成私有的空间数据模型数据。

3、体系分层对比
    
     1)数据访问通道
     比较对象:FDO、FME、ArcSDE、MapInfo SpatialWare
     支持访问数据格式的种类FME >= FDO > ArcSDE = SpatialWare;
     作为通用的空间数据模型工具,FDO与FME相当,目前FDO支持的数据类型有SDF、SHP、GDAL、ODBC、MySQL、ArcSDE、WMS、WFS等,由于其开源性,可扩展Provider;FME支持几乎多数主流GIS产品数据格式的ETL(Extract、Transform、Load)。由于产品(项目)定位不同,FDO仅作为MapGuide的数据访问部件使用(目前还未挖掘其类似FME的潜力),FME的系列工具供其他GIS开发商集成(ESRI的DI模块就是FME)。
     作为私有数据模型的访问通道,ArcSDE与MapInfo SpatialWare相当。

2)空间服务与造价
     可参阅2的总体功能对比表。
     从总体功能来说:ArcServer > MapGuide ? MapXtreme ? ArcIMS
     ArcServer在空间分析功能上远远超过其他产品。
    
     如果围绕空间数据的管理(采用企业级数据库管理空间数据)、采集更新、数据共享发布三大功能体系来实施GIS项目,那么可采用参考组合如下所示:
     -----ArcServer
     ArcServer + ArcSDE + 企业级数据库
     -----ArcIMS
     ArcIMS + ArcSDE + 企业级数据库 + (ArcEngine)
     ArcIMS + ArcSDE可以构建功能相对有限的数据管理、数据采集应用系统;通过部署ArcEngine,可构建强大的类似ArcGIS Desktop的应用体系。
     -----MapXtreme
     MapXtreme for Windows + 企业级数据库
     MapXtreme for Java + MapX + 企业级数据库
     前面提到:MapXtreme for Windows无C/S、B/S架构之分,既为C/S嵌入式开发的GIS产品,又为WebGIS产品。
     -----MapGuide
     MapGuide + PostgreSQL(MySQL)+ QGIS
     
     根据以上软件部署,实际软件造价高低依次:
      ArcServer > ArcIMS > MapXtreme > MapGuide(基本为开源项目组合)
     而以上部署存在的项目风险强弱:MapGuide > ArcServer ? ArcIMS ? MapXtreme

4、总结
     1)MapGuide在功能服务上有三大优势:
        --Feature与Image的共享服务;
        --MapGuide的DI特性;
        --MapGuide的Tile服务;
     2)采用MapGuide实施GIS项目软件造价相对较低,但承担的风险同时也是较大的

--------------------

下一篇将写:如何制作自动安装mysql数据库的安装包

随机推荐

  1. Deep learning:五十一(CNN的反向求导及练习)

    前言: CNN作为DL中最成功的模型之一,有必要对其更进一步研究它.虽然在前面的博文Stacked CNN简单介绍中有大概介绍过CNN的使用,不过那是有个前提的:CNN中的参数必须已提前学习好.而本文 ...

  2. java身份证验证

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...

  3. js submit的問題

    form 里面有input name="submit"的时候 $('#seachform').submit();不起作用

  4. D - Constructing Roads - 2421

    题意:有一些村庄需要修一些道路是所有村庄都可以连接,不过有些道路已经修好了,问题最少还需要修建的道路长度是多少. 输入的第一行是一个N代表N个村庄,下面是一个N*N的矩阵,代表着q->j的距离, ...

  5. Android ImageView图片自适应

    网络上下载下来的图片自适应:android:adjustViewBounds="true"(其详细解释在下面) <ImageView     android:id=" ...

  6. 快速排序quick_sort(python的两种实现方式)

    排序算法有很多,目前最好的是quick_sort:unstable,spatial complexity is nlogN. 快速排序原理 python实现 严蔚敏的 datastruct书中有伪代码 ...

  7. Vue源码之----为什么Vue中Array的pop,push等方法可以reactive,而Array[0]=&#39;a&#39;这样的方法不会reactive?

    这就要从reactive开始讲起了,粗略的说,js的操作能引起页面上显示的改变,是因为该操作引起了组件的重新渲染,渲染会生成新的虚拟节点,新节点和旧节点会对比,操作浏览器的node进行改变. vue实 ...

  8. Java 基础系列合集

    Java基础知识你知道多少? Java特性 Java三大特性:封装,继承,多态 Java 抽象类与接口 Java 浅拷贝和深拷贝 Java static和final Java 内部类.静态内部类.匿名 ...

  9. &lt;构建之法&gt;第11、12章

    第11章软件设计与实现 主要讲了典型的开发流程和开发阶段的一些管理方法 问题: 从spec道实现是代码的实现吗? 第12章 用户体验 主要讲了用户体验的各种角度和认识阻力登 问题: 用户的体验是设计前 ...

  10. Visual Studio 项目模板制作(二)

    上一篇,我们制作了项目模板,本篇我制作项模板 首先,从我们需要导出模板的项目中,文件->导出模板,弹出 导出模板向导 对话框 选择项模板,点击下一步 选择要导出的项,点击下一步 选择要Refer ...