ArcGIS、Super、MapMapInfo…

来源:互联网 发布:剪刀手软件 编辑:程序博客网 时间:2024/05/29 19:23
原文地址:ArcGIS、Super、MapMapInfo比较作者:女施主请留步

ArcGIS、Super、MapMapInfo比较                                      

     软件选型是GIS应用项目开发中的重要环节。在国内外众多的GIS软件产品中,"没有最好的,只有最合适的"。本文档从功能、性能、二次开发能力和技术支持等多方面剖析ArcGIS、SuperMapGIS和MapInfo三套解决方案,并列出对比条目对二次开发项目的重要等级参考,希望对开发商和最终用户软件选型有所帮助。

1. 对比软件

项目

ArcGIS解决方案

SuperMap解决方案

MapInfo解决方案

空间数据库技术

ArcSDE/ GeoDatabase

SuperMap SDX

MapInfo Spatialware

组件开发平台

MapObjects/ ArcObjects

SuperMap III

MapX

桌面数据管理软件

ArcMap

SuperMap Deskpro

MapInfo

数据采集软件

无专业数据采集软件,直接使用ArcMap

SuperMap Survey

无专业数据采集软件,直接使用MapInfo

 

 

 

 

2. 功能对比

2.1. 数据组织(重要等级参考:★★★★)

    在应用需求的推动下,ArcGIS先后推出了多种文件格式,如Arc/Info的Coverage、ArcView的Shape文件、ArcSDE的空间数据库、GeoDatase的空间数据库、交换文件格式E00等等,ArcMap推出后又出现了新的数据结构。这些数据格式所支持的功能各不相同,比如Coverage和GeoDatabase有拓扑关系,Shape和SDE没有拓扑关系,数据对象结构也相差极大,以至于各格式之间相互转换频繁,且这样或多或少地会损失信息和功能。

SuperMap同样提供了多种格式的数据组织方式,比如:基于复合文档技术的SDB,基于桌面数据库的MDB,基于大型数据库的SDXfor Oracle和SDX for SQLServer等。SuperMap的这些格式都有统一的对象模型和结构定义,各个格式支持的操作和功能从根本上是统一的。SuperMapGIS系列软件都可以直接打开这些格式的数据,并且能非常简单地实现各个数据格式数据源之间交换数据,如在同一格式的数据源内复制数据。SuperMap拥有独一无二的"多源空间数据无缝集成技术",允许开发上轻易将使用SuperMap已建成的应用系统移植到其他格式。比如,在极少代码改动的情况下,一个使用SQLServer存储空间数据的应用系统或者产品轻松移植到使用Oracle或者SDB的环境中。

   MapInfo的数据格式相对比较单一,即基于文件的TAB数据格式,另一种就是基于数据库的MapInfoSpatialware。MapInfo也能比较方便地在两种数据格式之间进行转换。不足之处在于MapInfo的数据格式都不支持拓扑关系,MapInfo整个软件也不支持拓扑关系。

2.2. 基于文件的地图数据管理(重要等级参考:★★★)

   基于文件的地图数据管理方式仍然在一些系统中广泛应用,特别是在一些中小型应用项目中中还是具有一定的意义。

2.2.1. 对比明细表

项目

ArcGIS

SuperMap

MapInfo

本地文件类型

Coverage、Shape

SDB、MDB

TAB

组文件个数

一个目录下的多个文件,不便于管理

2个(sdb, sdd),便于管理

多个( 一般多于5个),不便于管理

一组文件可管理数据集数量

1个数据集

多个(数十个至数百个,理论上可以管理21亿个数据集)。

您可以把多个Arc/Info Coverage和MapInfo TAB的内容用一个SDB管理。

1个数据集

数据加密与信息安全

不具备数据加密的功能。

SuperMapSDB文件具有加密功能。创建该文件时允许用户指定密码,其他用户如果不知道密码,即便有SuperMap软件也不能打开和使用数据。有利于保护用户的数据产权。

不具备加密功能

是否存储拓扑关系

×

是否存储对象风格

×

√(复合数据集)

是否支持数据压缩

×

×

支持复杂几何对象

×

√(对象类型丰富)

√(支持,但对象类型不够丰富)

大数据量管理能力

性能较高

性能较高

性能较高

地图范围无限制

×

是否支持SQL查询

2.2.2. 评述

   ArcGIS提供两种本地地图数据格式,即Coverage和Shape。其中Coverage支持拓扑关系,Shape文件不支持拓扑关系。两种文件格式都不提供加密功能,无法实现数据保护。两种数据格式都是一个数据集、多个文件组成,在大型应用系统中,地图数据量大,因而数据文件也很多,不便于数据的组织和管理。

   SuperMap也提供两种本地地图数据格式,即SDB和MDB。两种数据格式都支持拓扑关系、密码保护功能,允许用户对数据进行加密。两种数据格式都是多数据集一体化管理方式,外部数据文件数量少,方便于数据管理和组织。

   MapInfo的TAB文件格式也是由多个文件组成,不支持存储拓扑关系,也不支持加密。

2.3. 空间数据库技术(重要等级参考:★★★★★)

   基于关系数据库和对象关系数据库的空间数据库技术是现今大型GIS应用项目中广泛采用的空间数据管理技术,这一点在大型应用项目的GIS软件选型对比中一直受到高度重视。

2.3.1. 对比明细表

项目

ArcGIS

SuperMap

MapInfo

技术名称

SDE(Spatial Database Engine), GeoDatabase

SDX(Spatial Database eXtension)

Spatialware

支持SQL Server

支持Oracle

支持Oracle Spatial

支持数据类型

仅仅支持点、线、面、注记。CAD数据导入后参数化对象转换为简单线、面对象,造成大量数据膨胀。

点、线、面、注记、圆弧、圆、椭圆、曲线、GeoPath和复合对象等。由于支持参数化对象,CAD数据导入后膨胀较小。

点、线、面、注记、圆弧、圆、椭圆、曲线等。由于支持参数化对象,CAD数据导入后膨胀较小。

数据保密与信息安全

利用关系数据库的数据访问权限控制,具有很好的数据安全策略

利用关系数据库的数据访问权限控制,具有很好的数据安全策略

利用关系数据库的数据访问权限控制,具有很好的数据安全策略

是否支持拓扑关系

SDE不支持

GeoDatabase支持

支持

不支持

是否存储对象风格

×

√(复合数据集)

是否支持数据压缩

×

×

支持复杂几何对象

×

×

长事务支持

地图范围无限制

×(SDE的地图范围仅能向北和东方扩展,向南和向西则受限制)

×

是否支持SQL查询

2.3.2. 评述

   ESRI的SDE和后来推出的GeoDatabase都具有大数据量管理能力,具有很好的数据访问权限管理。但是ESRI的空间数据库支持的几何对象类型不够丰富,此外,由于SDE不支持存储和管理拓扑关系,造成不少应用系统特别是交通、电信、电力等与网络拓扑有关的行业应用系统选型的障碍。尽管GeoDatabase支持拓扑关系,但是MapObjects无法访问GeoDatabase。

    SuperMapSDX空间数据库技术具有大数据量管理能力和很好的权限管理功能。而且SuperMap空间数据库也如同SuperMap的文件格式一样,支持存储拓扑关系和非常丰富的几何对象类型。

   MapInfo的Spatialware空间数据库也有很好的权限管理功能,大数据检索能力也不错。Spatial不支持数据压缩。

2.4. 拓扑关系(重要等级参考:★★★★★)

   在电力、交通、电信和城市综合管网管理等系统中,拓扑关系方面的功能非常重要。

2.4.1. 对比明细表

项目

ArcGIS

SuperMap

MapInfo

拓扑错误检查

×

建立网络拓扑关系

×

建立多边形拓扑关系

×

网络拓扑分析

×

是否支持一根管线中多条通信线缆的网络路径搜索

×

×

编辑时是否支持动态维护网络拓扑关系

×

×

是否支持节点连接关系矩阵

×

×

2.4.2. 评述

    ArcGIS中的Workstation部分对拓扑关系有非常强的处理和分析功能,但是该部分缺少强大的组件式二次开发能力。ArcInfo8.0新增部分,特别是ArcObjects+GeoDatabase对拓扑的处理能力尚不成熟,尤其缺少交通网络资源管理中特别需要的动态维护拓扑关系、一根管线中包含多条光纤/铜缆以及一条道路多车道的网络搜索功能,也不支持节点连接关系矩阵。若用ArcObjects开发交通网络资源管理系统,这部分网络分析功能需要在二次开发中实现。若用MapObjects开发交通网络资源管理系统,则所有的拓扑关系维护和分析功能全部需要二次开发实现,工作量更大。

   SuperMap无论是文件格式还是空间数据库格式都支持拓扑关系存储管理功能。并且,针对交通网络资源管理中一根管道包含多条光纤/铜缆、一条道路多车道的特殊情况,SuperMap专门提供了解决方案,通过RuleMask可以对管线中指定的通信线缆、道路中的车道进行网络路径搜索,大大减少了二次开发的工作量。与此同时,SuperMap还支持在编辑时动态维护网络拓扑关系,增加管线无需重建拓扑关系。独特的节点联接关系矩阵为解决网络节点处理复杂的连接关系提供了方便。

   MapInfo不支持拓扑关系的存储和管理,也不支持基于拓扑结果的空间分析和运算。若用于开发电信、电力、自来水等需要拓扑分析功能的应用系统,拓扑分析功能完全需要二次开发实现,无疑增加了二次开发的工作量和系统建设周期。

2.5. 专题地图(重要等级参考:★★★★)

   专题地图是GIS软件根据属性数据的不同分别给几何对象采用不同风格显示的地图表现形式,是GIS软件数据可视化的重要工具,在多数GIS应用中都有重要意义。

2.5.1. 对比明细表

项目

ArcGIS

SuperMap

MapInfo

单值专题图

分段(范围)专题图

等级符号专题图

点密度专题图

3D棱柱图

×

×

统计专题图

面积图

×

×

阶梯图

×

×

折线图

×

×

点图

×

×

柱状图

三维柱状图

×

×

饼图

三维饼图

×

×

玫瑰图

×

×

三维玫瑰图

×

×

自定义专题图

×

×

2.5.2. 评述

   ArcGIS支持较多的专题地图,SuperMap在这方面功能更强,不仅支持更多的统计专题图功能,而且提供了独一无二的自定义专题地图,解决了以往GIS软件专题地图显示中面临的一些难题。MapInfo的专题地图功能也较为丰富,使用也比较方便。

2.6. 数据格式转换(重要等级参考:★★★★)

   对应用系统来讲,GIS软件数据交换能力决定了该系统的开放性,即能否方便地输入其他来源的数据以及输出相应的数据格式,与其他系统进行数据交换的能力。

2.6.1. 对比明细表

项目

ArcGIS

SuperMap

MapInfo

转入

MIF

×

E00

DXF

DGN

√,但支持不佳

×

TAB

×

----

SHP

Coverage

----

×

转出

MIF

E00

DXF

DGN

×

×

TAB

×

×

----

SHP

Coverage

----

×

2.6.2. 评述

   三套解决方案相比较,SuperMap具有更强的数据交换能力,支持更多的矢量数据格式(包括交换格式和二进制格式)。

2.7. 多源数据集成(重要等级参考:★★★)

  多源数据集成,即无需格式转换直接访问多种数据格式的能力,这是GIS应用系统开放能力的另一种体现。

2.7.1. 对比明细表

可直接访问的第三方地图格式

ArcGIS

SuperMap

MapInfo

DGN

×

×

DWG

×

Oracle Spatial

2.7.2. 评述

   ArcGIS和SuperMap的多源数据集成能力都比较强,其中SuperMap支持DGN,ArcGIS不支持。

2.8. 地图编辑(重要等级参考:★★★★)

  地图编辑功能是多数GIS应用必需的功能,组件对象模型强大的地图编辑功能可以省却大量二次开发的精力。

2.8.1. 对比明细表

项目

ArcGIS

SuperMap

MapInfo

属性编辑

对象添加、删除、移动

顶点编辑

沿线文字标注

×

自动维护拓扑关系

×

×

创建几何对象类型种类

仅能创建几种基本的几何对象类型(如:点、线、面等)

可创建二十余种几何对象类型,如:点、线、面、文本、曲线、矩形、圆角矩形、椭圆、斜椭圆、复合对象等

可创建的几何对象类型包括:点、线、面、文本、曲线、矩形、圆角矩形、椭圆

捕捉

与顶点或节点重合

在线上

×

×

在线之中点

×

×

在线的延长线上

×

×

与其他点在同一水平或竖直线上

×

×

线

与前一线段成固定角度

×

×

跨过其他点

×

×

水平或竖直

×

×

与线段平行

×

×

与线段垂直

×

×

固定长度

×

×

2.8.2. 评述

    ArcInfo在地图编辑功能方面能力欠佳一直困扰着ArcGIS用户,MapObjects甚至不提供基本的地图编辑功能,全部需要通过二次开发来实现。ArcObjects提供一些地图编辑功能,但是所能创建的几何对象类型不多,而且智能捕捉能力也弱。

   SuperMap超强的图形编辑能力在很大程度上降低了图形编辑的开发工作量,在这方面SuperMap具有非常显著的优势。

   MapInfo地图编辑功能比较方便,能创建的地图对象也较丰富,但在捕捉功能方面较弱。

2.9. 制图输出/桌面排版(重要等级参考:★★★)

   通过桌面排版方式打印输出地图是多数GIS应用系统需要提供的功能。

2.9.1. 对比明细表

项目

ArcGIS

SuperMap

 

多页分幅输出

√(ArcObjects)
×(MapObjects)

√(MapInfo)
×(MapX)

设计时页面与打印设备无关(如当前仅仅安装A4打印设备,应该可以设计大于A4的页面)

√(ArcObjects)
×(MapObjects)

×

艺术字标题

×

×

属性数据表

√(ArcObjects)
×(MapObjects)

×(可通过二次开发实现)

×

支持图片

√(ArcObjects)
×(MapObjects)

×

布局中支持直接缩放/定位地图范围

√(ArcObjects)
×(MapObjects)

×

比例尺

√(ArcObjects)
×(MapObjects)

√(MapInfo)
×(MapX)

图例

√(ArcObjects)
×(MapObjects)

√(MapInfo)
×(MapX)

图例允许分解调整

√(ArcObjects)
×(MapObjects)

×

对象自动对齐方式

√(ArcObjects)
×(MapObjects)

√(MapInfo)
×(MapX)

对象组合

×

×

对象组合嵌套

×

×

2.9.2. 评述

   MapObjects不提供桌面排版功能。

   ArcObjects提供桌面排版功能,功能较强。支持属性数据表,不支持对象组合(Group)、组合嵌套(NestedGroup)和艺术字体标题。

   ArcGIS中的各个软件无法共享制图排版的成果,如ArcMap的布局设计成果无法在MapObjects、ArcInfoWorkstation和ArcView 3.x中使用。

   SuperMap提供专门的桌面排版控件(SuperLayout),功能较强。SuperMap的布局组件不直接支持属性表,需要通过二次开发来扩展实现。SuperLayout支持艺术汉字标题,支持布局元素的组合(Group)、组合嵌套(NestedGroup)等功能,有助于在布局二次开发中实现特殊的模板功能。

    SuperMapGIS系列软件基于共同的技术基础构建,各个软件之间可以共享布局设计,如SuperMap Survey制作的布局,在SuperMapDeskpro桌面软件和SuperMap III组件中都可以识别并使用。

   MapX没有排版功能。

   MapInfo提供排版功能,功能较强,不足之处在于不支持布局中直接缩放地图、嵌入图片、对象组合以及组合嵌套等。

2.10. 数据采集(重要等级参考:★★★★)

    SuperMap提供专业的数据采集工具,可以进行基础地形图和专业地图数据的批量快速采集。

ArcGIS和MapInfo无类似专业的数据采集软件。使用传统的桌面GIS软件进行数据编辑时,往往需要不断切换可编辑图层,来指定当前绘制的几何对象存放到什么图层,这样既耗费时间也容易出错。此外,通过数字化人员输入编码的方式来区分同层的不同地物要素类型,这也是一个容易出错的工作,大量数据错误检查的工作严重影响数据采集的效率。

   基于SuperMapSurvey专业数据采集软件,先由数据采集管理员定义数据结构并构建数据采集界面参数库,数字化人员通过所见即所得的方式绘制指定类型的几何对象,无需不断切换可编辑图层、无需输入要素编码,避免了大量错误的发生,大幅度提高了效率。

4. 二次开发对比

4.1. 二次开发组件(重要等级参考:★★★★★)

    组件式开发方式无疑已经成为当前最主流的GIS应用二次开发方式,比较GIS软件的组件开发能力和灵活性在GIS软件选型中至关重要。

4.1.1. 对比明细表

软件

ArcGIS

SuperMap

MapInfo

是否支持可视化设计

 

语言

Visual Basic, Visual C++, Delphi, C++ Builder, PowerBuilder等

Visual Basic, Visual C++, Delphi, C++ Builder, PowerBuilder等

Visual Basic, Visual C++, Delphi, C++ Builder, PowerBuilder等

是否具有通用性

 

是否易于与其他技术(如MIS等)集成

 

功能

MapObjects功能很弱,尚不如SuperMap众多组件中的一个核心组件;

ArcObjects功能强大。

功能强大

MapX功能比MapObjects稍强,但仍然属于轻量级客户端

扩展性

基于标准组件的二次开发,可以与其它组件集成,扩展非常强。

基于标准组件的二次开发,可以与其它组件集成,扩展非常强。

基于标准组件的二次开发,可以与其它组件集成,扩展非常强。

伸缩性

MapObjects只有一个控件,功能弱,满足不了大型应用需求;

ArcObjects组件群庞大,但是可拆性差,可裁减性亦差,伸缩性不足且客户端成本高。

多个组件组成,可自由拆卸组合,可以根据不同的项目选择不同的组件,有利于降低客户端成本。适合于大型、中型和小型项目应用。

MapObjects只有一个控件,功能弱,满足不了大型应用需求。

对象封装粒度

MapObjects对象封装粒度适中(计有45个对象),易于使用,同时具有灵活性;

ArcObjects对象封装粒度过细,组织复杂,难于掌握;而且由于封装粒度过细,导致消耗系统资源(CPU和内存)大、初始化时间长、速度慢等问题。

SuperMap对象封装粒度适中(计有120多个对象),易于使用,同时具有灵活性

MapObjects对象封装粒度适中(计有56个对象),易于使用,同时具有灵活性。

二次开发文档

ArcObjects开发文档参数说明简略,没有示范代码

参数说明较详细,且常用方法有大量示范代码

参数说明较详细,有一定示范代码。

4.1.2. 评述

   MapObjects组件对象封装粒度适中,使用灵活且易于掌握。但是功能很弱,其功能不超过SuperMap系列组件中的核心组件之功能。因此MapObjects的定位是一个非常轻量级的客户端,不适合于大型工程应用。此外,MapObjects自从2.1版本推出之后已经长期没有更新版本,若采用其进行工程应用开发,后续版本升级存在问题。

    ArcObjects是ESRI基于ArcInfo8新的构架推出的组件对象平台,功能强大,对象丰富。但是ArcObjects对象粒度封装过细,导致对象数量骤增(多达1000多个),一方面导致系统初始化速度慢(每个COM对象的初始化都需要消耗一定的CPU和内存资源),另一方面导致掌握该组件群非常困难。

   SuperMap组件对象封装粒度适中,使用灵活且易于掌握。SuperMapIII大型组件式GIS软件开发平台功能强大,由一系列控件组成,既可以协同工作,也可以任意裁减,具有高度的伸缩性和灵活性。

MapX与MapObjects功能基本相当,稍强于MapObjects,但是也属于轻量级客户端,只有一个主要控件,不适合于大型应用项目。

4.2. 二次开发文档(重要等级参考:★★★★)

    ArcObjects的开发参考文档不仅是全英文说明,而且内容过于简洁,比如,函数参数除了说明参数类型以及是否可缺省之外,竟鲜有文字描述该参数的意义,令人难以理解。

    SuperMapIII全中文二次开发文档齐全,《SuperMap III程序员参考手册》中对对象及其接口的说明较为详细,方法的参数除了有较详细的说明外,还有大量的示范代码指导开发者使用对象及其接口。除此之外,《SuperMapIII开发教程》还提供了系统学习SuperMap III组件的教材。

    以下是ArcObjects和SuperMap中一个典型方法(创建数据集)的文档说明对比(SuperMap手册中不仅提供了对参数的较详细说明,而且通过大量示范程序说明接口的使用方法):

软件手册

文档内容示范

ArcObjects Developer Reference

CreateFeatureDataset Method

Creates a new feature dataset.

Syntax

Set variable =object.CreateFeatureDataset(Name, SpatialReference)

The CreateFeatureDataset method syntax has thefollowing object qualifier and arguments:

Part

Description

object

An object expression that evaluates to an object in theApplies To list.

variable

A reference to an object that implements IFeatureDataset.

Name

Required. A string expression that represents the Name.

SpatialReference

Required. An ISpatialReference object.

Functional License Check

If your application/site is not appropriately licensed,CreateFeatureDataset can return an Err.Number ofFDO_E_NO_SCHEMA_LICENSE.

Remarks

The CreateFeatureDataset method can be usedto create a new FeatureDataset given its name andspatial reference. Methods supported by the returned featuredataset allow creation of feature classes in the featuredataset.

 

SuperMap III 程序员参考手册

CreateDataset 方法


语法

    soDataset soDataSource.CreateDataset(strNameAs String,nType As seDatasetType,nOptions AsseDatasetOption,[objBounds As soRect])

参数

可选

类型

描述

strName

必选

String

数据集名称

nType

必选

seDatasetType

数据集类型,参见枚举常量 seDatasetType

nOptions

必选

seDatasetOption

数据集建立参数,参见枚举常量 seDatasetOption

[ objBounds ]

可选

soRect

对于 SDX 引擎和 SDE 引擎,需要指定该 Bounds,系统的默认值为(0,0)--(2000,2000),如果在创建数据集时不指定 Bounds,系统将采用默认值,此时,Bounds 以外的数据不能加入数据集当中,使用 Clip 等空间分析方法时可能会因为 Bounds 的范围不对产生错误;SDB 引擎,则不需要指定 Bounds

说明

    用于创建数据集,用此方法创建的数据集属性表中只有 SuperMap 的系统字段,均以 SM 开头。

备注

    该对象隶属于SuperMap.ocx控件。
    1.在同一个数据源文件中,数据集名称必须唯一。可用 soDataSource.IsAvailableDatasetName 判断数据集名称的合法性。
    2.在创建使用 SDE 引擎的数据源中创建数据集时,由于 SDE 中有保留的关键字,所以,在创建点数据集时不能以 Point 为名称,创建线数据集时不能以 Line 为名称,创建面数据集时不能以 Region 为名称。
    3.在创建以 SDX 为引擎的数据源中的数据集时,数据集名称不能以数字开头。

例子

    以下代码示范在工作空间的第一个数据源中创建一个名为"abcd"的数据集。要使用代码,须先在工作空间中打开至少一个数据源。其中 SuperWorkspace1 是 SuperWorkspace 控件实例。
    
  Dim ds As soDataSource
  Dim dt As soDataset
    
  Set ds SuperWorkspace1.Datasources.Item(1)
  If ds.IsAvailableDatasetName("abcd") False Then
    MsgBox "数据集名称非法!"
  Else 
    '创建点数据集,并判定成功与否
    Set dt ds.CreateDataset("abcd", scdPoint, scoDefault)     
    If dt is Nothing Then 
      MsgBox "创建点数据集失败!"
    Else
      MsgBox "创建点数据集成功!"     
    End If
  End If
    
  Set ds Nothing
  Set dt Nothing

参考

    SuperMapLib.soDataSource.CreateDatasetFrom 方法 

    SuperMapLib.soDataSource.DeleteDataset 方法 

    SuperMapLib.seDatasetType  

    SuperMapLib.seDatasetOption  

    SuperMapLib.soDataSource.IsAvailableDatasetName 方法 

    <soDataSource接口集合>


 

5. 技术支持对比

5.1. 技术支持(重要等级参考:★★★★★)

   进行应用系统二次开发不同于使用桌面软件,强有力的特别是深层次的技术支持往往可以避免因为一个小问题阻碍整个系统开发的进展,从而大幅度提高项目开发进度。因此技术支持在应用系统建设中是应该予以重点考虑的问题之一。

5.1.1 对比明细表

项目

ArcGIS

SuperMap

MapInfo

开发培训

         

BBS在线技术支持

一般

非常好

一般

电话/E-mail技术支持

很好

技术支持人员对软件的熟练程度

很好

提供底层开发人员级的技术支持

技术支持快速响应

一般

一般

特殊情况下
底层功能定制

 

 

0 0