桌面GIS开发课件_第1页
桌面GIS开发课件_第2页
桌面GIS开发课件_第3页
桌面GIS开发课件_第4页
桌面GIS开发课件_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

桌面GIS开发

-DeskTopGISDeveloping

2010-10-25

主要内容

1桌面GIS类型

2桌面GIS开发方式

3桌面GIS开发形式

4C/S结构

5常见桌面GIS二次开发平台

63D桌面GIS开发

7ArcGISEngine开发

桌面GIS的类型

,通用型(工具型)桌面GIS

即常见的GIS软件平台或软件包,如ARCINFO、

SuperMap等,具有空间数据输入、存贮、处理、分析和

输出等GIS基本功能。

这种GIS功能基本类似,通用的功能比较全面。

》应用型桌面GIS

以某一专业、领域的工作为主要内容,利用GIS的手段

进行数据管理、分析和表达,这种GIS软件专业性强。

包括专题GIS(如国土GIS、海洋GIS)和区域综合GIS

(区域经济、人口、资源、流域环境)

桌面GIS开发方式

»独立开发

不依赖任何GIS工具软件,独立进行应用系统开发。

选用某种程序设计语言,如C++、VB、C#等,在一定的操作

系统平台上编程实现。如EA2000地图生成与发布系统。

这种开发方式开发周期长,投资较大见效慢,对程序员要求

较高,但具有完全自主权,创新性强,拓展空间大的优点。

»基于开源GIS开发

桌面版开源GIS软件有GRASS,UD1G,OSSIM,QGIS,

MapWindows,gvSIG,Kosmo,JUMP/JCS,SAGA,

ILWIS,SharpMap等,应用python等语言进行开发。

这种开发方式开发周期较长,也具有较大的自主权,拓展空

间大的优点。

桌面GIS开发方式

A单纯二次开发(定制开发)

完全借助于G1S工具软件提供的开发语言进行应用系统开发

O常见二次开发的宏语言:ArcGS提供了VBA语言;

Mapinfo提供了MapBasic语言等等。

这种开发方式简单易行,短小灵活,适于开发专业的小型工

具,但它属于宿主开发方式,不宜于开发大中型桌面G1S。

》集成二次开发

集成二次开发是指利用GIS工具软件实现GIS的基本功能,

通用编程环境中引入GIS开发库,进行二者的集成二次开发

这种开发方式开发周期短,宜于开发大中型应用桌面G1S。

已成为应用桌面GIS开发的主流方向。

桌面GIS开发形式

模块式GIS

件集成式G1S

GI阶S

模块化GIS

核心式GIS

组件式GIS

插件式GIS

桌面GIS开发形式

»模块式GIS

在GIS发展的早期阶段,由于受到技术的限制,GIS软件只是满

足于某些功能要求的一些模块,没有形成完整的系统,各个模

块之间不具备协同工作的能力。

》集成式GIS

集成式GIS是GIS发展史上的一个重要里程碑,其优点在于它

集成了GIS的各项功能,形成独立完整的系统;而其缺点在于

系统过于复杂、庞大,从而导致成本高,也难于与其它应用系

统集成。集成式GIS的典型代表:

国外Arcinfo、Mapinfo>GenaMap等;国内:MAPGIS

、SUPERMAP、GEOSTAR等

桌面GIS开发形式

A模块化GIS

其基本思想是把G1S按照功能划分为一系列模块,运行于统一

的基础环境之上(如MicroStation)。尽管许多集成式GIS软

件也可以划分为几个模块,但模块化G1S软件的模块被有目的

地划分得更细。模块化G1S具有较大的工程针对性,便于开发

和应用,用户可以根据需求选择所需模块。代表:

Intergraph的MGE但无论是集成式GIS或是模块化GIS,都

很难与管理信息系统(MIS)以及专业应用模型一起集成高效

、无缝的GIS应用软件。

,

桌面GIS开发形式

»核心式GIS

核心式GIS被设计为操作系统的基本扩展。Windows系列

操作系统上的核心式GIS提供了一系列动态链接库(DLL),开

发G1S应用系统时可以采用现有的高级编程语言,通过应用程

序接口(API)访问内核所提供的GIS功能。

除了一些基本的动态链接库以外,实现各种功能的动态链接库

可以被拆卸和重组,给用户提供较大的灵活性。

对数据库管理要求较高的用户甚至可以选择MIS开发工具来

构造GIS应用软件,为GIS与MIS的无缝集成提供了全新的解

决思路。

如MapGIS6版本把内核功能抽取为DLL,在VC++中通过

API来调用。

桌面GIS开发形式

A组件式GIS

ComGIS,是指基于组件对象平台,以一组具有标准通信接口

的、允许跨语言应用的组件来“集成”具有相关功能的GIS

统。这些组件称为GIS组件,GIS功能组件之间以及GIS功能

组件与其它非GIS功能组件之间可以通过标准的通信接口实

现交互,这种交互甚至可以跨计算机实现。

组件GIS产品:ArcGISEngineMapxGeomedia

SuperObjects等

桌面GIS开发形式

»插件式GIS

插件式GIS是指基于脚本、COM组件、ActiveX控件等技术

把GIS的功能抽取为相对独立的插件,在需要时把这些插件

插入G1S平台中,GIS平台中有插件管理器管理这些插件。

这种开发形式比单纯的COMGIS又灵活了一些,软件伸缩

强。如MapGIS7是插件GIS的典型案例^

传统结构体系插件式结构体系

C/S结构

»单机版桌面GIS

桌面GIS分为单机版软件和C/S结构软件。单机版桌面GIS

数据库、功能计算和输入输出等所有功能都独立的机器上

完成。这种模式安全性好,但数据不能共享。

»C/S结构桌面GIS

C/S结构软件又分为两层结构和三层结构形式。两层结构中

数据库由专门的服务运行,桌面应用程序安装在各个台式

机上。目前在国内这种运行方式居多。

C/S结构

»口5结构桌面615

C/S结构软件又分为两层结构和三层结构形式。三层结构中

数据库由专门的服务运行,桌面应用程序也由专门的服务

器运行,各客户终端访问应用程序服务。这种方式是真正

意义上的C/S结构。

常见桌面GIS二次开发软件

ArcGIS

基于ArcGIS软件开发桌面GIS有三种方式,其一是基于

ArcGISDeskTop定缶U开发,这种方式应用VBA开发环境开

发在ArcGISDeskTop中应用的工具或宏;其二在,NET等开

发环境中引入ArcGISEngine对象库进行应用程序开发,开

发出

来的软件仍然依托于ArcGISDeskTop软件运行;其三在

,NET等开发环境中引入ArcGISEngine对象库进行应用程序

开发,开发出来的软件独立于ArcGISDeskTop软件运行,

但需要安装运行时(ArcGISEngineRuntime)许可软件

常见桌面GIS二次开发软件

Mapx

MapX是一个可编程控件,它使用与MapinfoProfessional

一致的地图数据格式,并实现了大多数MapinfoPro的功能

MapX为开发人员提供了一个快速、易用、功能强大的地图

化组件。在,NET,Delphi,PowerBuilder,VC等可视化开

发环境中,只需在设计阶段将MapX控件放入窗体中,并对

其进行编程,设置属性或调用方法或相应事件,即可实现数

据可视化,专题分析,地理查询,地理编码等丰富的地图信

息系统功能。

MapX定义了一个类体系,以有效的组织图形元素,图层,

属性数据等对象。MapX的主要功能包括:地图显示;对地

图进行放大、缩小、漫游、选择等操作;专题地图;图层控

制;数据绑定;动态图层和用户绘图图层;生成和编辑地图

对象;简单地理查询:边界查询,地址查询.

常见桌面GIS二次开发软件

GeoMedia

GeoMedia没有自己的数据格式,可以将Arc〃nfo、

ArcView>MGE、Mapinfo、CAD(包括AutoCAD和

MicroStation)>Access>Oracle、SQLServer等多个

GIS数据源的数据直接读取到数据库中,无需任何转换地置

于一个统一的系统中,并能输出成其它GIS平台的数据格式

GeoMedia也没有专门的属于自己的开发语言,使用任何一

种常用开发工具,即可调用它提供的组件、控件进行开发。

SuperObjects是基于Microsoft的COM组件技术标准,以

ActiveX组件和控件的方式提供强大的GIS功能,适用于用户

快速开发专业GIS应用系统。这些ActiveX组件和控件可以

方便地嵌入到,NET,Java等编程环境中。

常见桌面GIS二次开发软件C

MAPGIS7.0

MAPGIS7Q采用全组件化结构,为了方便应用软件开发,

系统设计了一个全新的应用开发框架模型,使用的当前非常

流行的平台+插件组成框架,插件思想贯穿整个系统。这种

全新开发框架模型的最大特性是可实现动态挂接符合

MAPGIS7Q接口标准的功能模块,使系统具有很大程度的

灵活性和可扩展性。主要有三大模块:

MPIFrame模块该模块包含8个接口,主要定义了框架的接口部

分,实现了应用程序的动态加载和管理,其中包括插件的管

理。

AppFrame模块包含从MPIApplication接口继承来的

IGisAppFrame接口,有关MapGis7.0的管理部分。

WPIFrame模块包含5个接口,主要实现对应用框架所加载的工

具,视图等插件的界面进行定制与管理

3D桌面GIS开发

底层开发3DGIS

基于可视化面向对象开发语言环境和三维编程接口的开发

方式,底层开发的方式软件效率较高,同时具有跨平台的

特性。但是缺点在于代码量很大,而且只能针对开放的数

据格式。主要应用的语言环境有VC++、,NET平台,常用

的三维开发接口包括DirectX、OpenGL>Vrml,其中

DirectX和OpenGL都是基于半底层开发的,开发的软件模

块和代码都可以移植,Vrml是基于Web开发的。

3D桌面GIS开发

二次开发3DGIS

ArcObject是ESRI公司提供给用户的二次开发平台,其中的

三维组件能够比较好的在三维数据技术上完成三维场景构建

,可视化表达和较为复杂的三维分析。ArcGISIO可方便地

实现三维虚拟城市建设。

TerraExplorerPrO开发组件是美国Skyline公司开发的全三

维的构建平台,具有强大空间信息展示功能,支持交互式绘

图工具,提供三维测量及地形分析工具,提供数据库接口支

持如oracle,ArcSDE,提供GIS标准文件格式,拥有强大三

维空间数据处理能力。

3D桌面GIS开发

二次开发3DGIS

EV-Globe是北京国遥新天地信息技术有限公司开发的三维

G1S平台,该平台可以进行逼真全球3D高速浏览;矢量、栅格

数据一体化管理;提供全球真彩色陆地卫星影像数据为基础的

遥感影像;另外在服务端跨平台支持,并能够给用户定制功能

VRMap是北京灵图公司提供的一个三维可视化构建平台,采

用JZEE体系架构,可以在多种编程语言平台下进行二次开发

oVRMap二次开发平台是基于DirectX和OpenGL开发的通

用三维引擎,它在总体框架上采用COM组件技术,并且使用

球面贴图技术实现了文字注记和贴图注一记。同时VRMap提

供城市级别的基于网络的海量精细场景,可以快速建立三维

应用。

3D桌面GIS开发

目前3DGIS开发存在的问题

(1)在2D屏幕中实现辅助三维空间分析难度太大。因此目

前大多空间分析的功能主要是在2DGIS中实现,结果

在3DGIS中显示。

(2)由于没有开放底的接口,大多二次开发3DGIS扩展受

限。

(3)3DGIS兼容性很差,没有统一的标准。

基于ArcGISEngine二次开发

ArcGISEngine概述

ArcGISEngineDeveloperKit提供一系列可嵌入的

ArcGIS组件,这些组件可在ArcGISDesktop应用程序框架

之外使用(如作为ArcGISEngine的一部分而不是在

ArcMap中管理地图对象)。使用ArcGISEngine

DeveloperKit,开发人员采用访问GIS任意功能集的简单接

口来构建专门用途的GIS解决方案,或者可以把GIS原理嵌入

到已有的用户应用程序中,将GIS应用到更广泛的用户群。

ArcGISEngine为开发人员提供了一个COM、.NET、Java

和C++的应用编程接口(API)

基于ArcGISEngine二次开发

DesktopGISEwtoedtltMlGISS&rvcrGISMobileGIS

Fig1ArcGISEngineDevelopingMode

基于ArcGISEngine二次开发

AArcGISDeskTop平台应用程序模块

ArcMap

ArcMap是ArcinfoDesktop的中心应用程序,它主要

是面向地图对象的、用于完成各种基于地图任务的GIS

应用程序,能够完成任务包括空间数据的编辑、地图分

析和制作地图等。在ArcGISEngine库中有ArcMap组件

库及相关组件库来实现这些功能。

ArcCatlog

ArcCatalog应用程序是另一个用于组织和管理空间数

据的一个公共的重要应用程序框架,它管理的对象包括

地图文档、数据集、globes、模型、元数据、服务等。

能够完成任务主要包括浏览和查找地理信息与记录、

看和管理元数据、定义和创建空间数据库模式和设计、

构建和管理ArcGIS服务器、搜索和连接本地、网络和

Web上的空间数据。在ArcGISEngine库中有

ArcCatalog组件库及相关组件库来实现这些功能。

基于ArcGISEngine二次开发

AArcGISDeskTop平台应用程序模块

ArcToolbox

ArcToolbox是一个用于数据转换、空间运算等功能的

独立模块,该模块提供了大约150多个工具,可以完成

数据处理、数据转换、地图管理、叠加操作、地图投影

等任务。实现该模块功能的ArcGISEngine库比较分散,

ArcGIS9没有把它作为独立的软件出现,而是作为嵌入

在其它应用程序中的模块。

ArcScene

ArcSence应用程序提供了三维分析的核心功能,可以

完成三维数据的多图层显示、二维地表数据的三维可视

化表达、创建三维地表数据及三维地表分析。在

ArcGISEngine库中ArcSence和3DAnalysis组件库及

关组件库来实现这些功能。

基于ArcGISEngine二次开发

AArcGISDeskTop平台应用程序模块

ArcGIobe

ArcGIobe应用程序提供了三维的球体空间

框架,可以完成球体空间框架管理、地表数

据的三维可视化表达、图层管理及三维地表

分析等功能。在ArcGISEngine库中ArcGIobe

和3DAnalysis等组件库及相关组件库来实

现这些功能。

ArcReader

ArcReader应用程序主要由ArcGISEngine库

中的Display库和Maplex库来实现功能,

ArcScan应用程序主要由ArcGISEngine库中的

ArcScan

库及相关库来实现功能。

基于ArcGISEngine二次开发

AArcGISEngine数据管理

工程文件

MXTFile

MXDFile

图各文件

LyrFile

数据文件

VectorData

RasterData

Tin

Prj

Relationship

基于ArcGISEngine二次开发小

DataTypeDataFormatDataFormat

Shapefile

Arein1bCoverages

EsriGRID

WindowsBitmap(.bmp)

EsriRasterCatalogsControlledImageBase,CIB

CompressedARCDigitalizedRaster

EsriBandInterleavedbyLine(.BIL)

Graphics,CADRG

EsriBandInterleavedbyPixel(.BIP)SDE

DTEDLevelO,1and2(.DT*)

RasterRaster

DataEsriBandSequential(.BSQ)ERMapper(*.ERS)

EsriGRIDStack(<directory>)GraphicInterchangeFormat,JIFF(.JPG)

NationalImageTransfer

EsriGRIDStackFile(,STK)

Format,NITF2.0and2.1(.NTF)

ErdasImagine(.IMG)PortableNetworkGraphics(.PNG)

Erdas7.5Lan(.Lan)LizardTechMrSID(.SID)

Erdas7.5GIS(.GIS)TaggedImageFileFormat,TIFF(.TIF)

TINEsriTIN

基于ArcGISEngine二次开发工会

1D

C1

uc岁

no

Q&

Fig2ArcGISEngineDataManagement

基于ArcGISEngine二次开发

>ArcGISEngine模型

00Idea

Class

Abstract

Inheritance

Encapsulation

Polymorphism

Object

Properties:Characteristicsofanobject

Methods:Thingsanobjectknowshowtodo

Events:Actionsthatanobjectcanrespondto

Interface

IDriv

IDriveIHorn

IHornIBrake

IBrakeIDrive

IDriveIHorn

IHornIBrake

IBrake

Fig3ExampleofInterfaces

基于ArcGISEngine二次开发

ArcGISEngine模型

ArcGISEngineClasses

AbstractClass

CoClass

Class

抽象类

尾气T车库

j轮实例化类、代位实例化举、

Fig4ExampleofClasses

基于ArcGISEngine二次开发

ClassDiagramAbstractclass

InterfaceAoInterfaceofinterest

(Optional)lnterfaceBo-

Typeinheritance

CoClassInstantiation

InterfaceD

Composition

InterfaceB

Class

InterfaceGo-Interfaceofinterest

InterfaceM

(<classname>)lnterfaceO

Association1.JMultiplicity

SpecialInterfaces

(Optional)representsnterfacesthatare

tnheritedbysonvesubclassesbutnotalloInboundInterface

Thesuocasses-is!theoptionalenumera^on

•menacestneyimp-ement•OutboundInterface

firsfValde-firstEnumeration

secondVa-ue-secondEnumeration

(Instance)representsenterfacestha:areInterfacekey

on«yonspecificinstancesoftheclass»—PropertyGe1

PropertyPut

(<cia5sname>)^ndicazesthenameofProp-ertyGeVPutStructurekey

-OPropertyPutbyReference

thenelperclassrequiredtosupportthisf^stMecnber:Type

Method

eventinterface»nVisual日awesecondMemberType

Fig5ArcGISEngineClassDiagram

基于ArcGISEngine二次开发

基于ArcGISEngine二次开发

ArcGISEngineModel

ArcGISEngineCOMLib

74COMLibs(*.olbFilesArcGIS/com)

Morethan600EnumTypes

Morethan35Structures

Morethan3000Interfaces

Morethan2400CoClasses

LibStructureDiagram

基于ArcGISEngine二次开发

ArcGISEngineModel

ArcGISEngineCOMLib

l.SYSTEM

System库为ArcGIS系统结构最底层的库,该库

包含了提供组成ArcGIS的其它库所使用服务的

组件。在System库中定义的大量接口可由开发

人员实现。Aolnitializer在System中定义,所

有的开发人员必须使用此对象对使用Engine功能

的应用程序中的ArcGISEngine进行初始化和取

消初始化。开发人员不能扩展此库,但可以通过

实现包含在此库中的接口来扩展ArcGIS系统。

基于ArcGISEngine二次开发

ArcGISEngineModel

ArcGLSEngineCOMLib

2.SYSTEMUI

SystemUI库包含用户界面组件的接口

定义,这些界面组件可以在ArcGIS

Engine中被扩展,它们包括

ICommand,ITool,和IToolControl

接口。开发人员使用这些接口来扩展

ArcGISEngine开发组件使用的UI组

件。此库中包含的对象为针对开发人员

的应用程序对象,用于简化一些用户界

面的开发。开发人员不扩展该库,但可

以通过实现包含在此库中的接口来扩展

素纬

基于ArcGISEngine二次开发◎

ArcGISEngineModel

ArcGISEngineCOMLib

3.GEOMETRY

GeoMetry库处理存储在要素类或其它图形元素中的

要素的几何体或形状。绝大部分与用户交互的基本几何对象为点、

多点、折线和多边形。除了那些顶层的实体作为建筑物群的折线

和多边形的集合体外,还有一些构成这些几何体的基本元素,它

们为线段、路线和圆环。折线和多边形由一系列相连的线段组成,

这些线段形成路线。线段包含两个不同的点:起点和终点,和从

头到尾定义曲线的元素类型。线段类型为圆弧、直线、椭圆弧和

贝塞尔曲线。所有的几何对象都有Z,M和与它们顶点有关的IDs。

基本的几何对象都支持几何操作,如Buffer或Clip。几何基本元

素注定不能被开发人员扩展。

基于ArcGISEngine二次开发

ArcGISEngineModel

ArcGISEngineCOMLib

4.DISPLAY

Display库包含用来显示GIS数据的对象。

除了用于图象实际输出的主显示对象外,该库还包含

表达符号和颜色的对象,这些符号和颜色用于控制显

示中绘制的实体属性。此库还包含与显示交互时提供

给用户视觉回馈的对象。开发人员经常通过一个视图

与显示交互,该视图如由Map或PageLayout对象提

供的视图。此库的所有部分均可扩展,通常扩展的域

为符号集、颜色集和显示回馈。

基于ArcGISEngine二次开发

ArcGISEngineModel

ArcGISEngineCOMLib

5.SERVER

Server库包含允许用户连接和操作

ArcGISServer的对象。开发人员使用

GlSServerConnection对象获得访问某个ArcGIS

Server的权限。GlSServerConnection对象给出

访问ServerObjectManager的权限。利用此对象,

开发人员可操作ServerContext对象来管理运行在

服务器中的ArcGISEngine。Server库不能被开

发人员扩展。在与ArcGISServer交互时,开发人

员可以使用GISCIient库。

基于ArcGISEngine二次开发◎

ArcGISEngineModel

ArcGISEngineCOMLib

6.OUTPUT

Output库用来创建图形输出到设备(如

打印机和绘图仪)和硬拷贝格式(如增强的元文件

和栅格图象格式JPG,BMP等)。开发人员使用此库

中的对象和ArcGIS系统的其他部分来创建图形输出。

通常,这些对象为Display和Carto库中的对象。开

发人员可为自定义设备和导出格式扩展Output库。

基于ArcGISEngine二次开发

ArcGISEngineCOMLib

7.GEODATABASE

GeoDatabase库提供地理数据库的编程

APIo地理数据库是构建于标准的工业关系数据库

和对象关系数据库技术之上的地理数据仓库。库中

的对象为ArcGIS内所有支持的数据源提供了统一

的编程模型。GeoDatabase库定义了许多接口,

这些接口由体系结构中较高层次的数据源提供者实

现。地理数据库可由开发人员扩展,以支持专门的

数据对象类型(要素、类等);除此之外,也可以

包含使用PluglnDataSource对象添力口的自定义矢

量数据源。地理数据库本身所支持的数据类型不能

被扩展。

基于ArcGISEngine二次开发

ArcGISEngineModel

ArcGISEngineCOMLib

8.GISCLIENT

GlSOient库允许开发人员使用Web服务,这些

Web服务由ArcIMS和ArcGISServer提供。此库包含的对

象连接到GIS服务器所使用的Web服务。支持ArcIMS

ImageServices^FeatureServiceso它还提供——种通用

的编程模型来以无国界的方式操作ArcGISServer对象,这

种方式为直接的或通过一个Web服务目录。运行在ArcGIS

Server上的ArcGISEngine不能通过GISCHent接口访问。

要获取直接访问运行在服务器上的ArcGISEngine的权限,

用户应该使用Server库中的功能。

基于ArcGISEngine二次开发◎

ArcGISEngineModel

ArcGISEngineCOMLib

9.DATASOURCESFILE

DataSourcesFile库包含对基于文件的数据源的

GeoDatabaseAPI的实现。这些基于文件的数据源包括

shape文件、coverage、TIN、CAD、SDC>ArcGIS

StreetMapffVPFo开发人员不能扩展DataSourceFile库。

10.DATASOURCEGDB

DataSourcesGDB库包含对数据库数据源的

GeoDatabaseAPI的实现。这些数据源包括Microsoft

Access和SDE软件支持的RDBMS。开发人员不能扩展

DataSourceGDB库。

基于ArcGISEngine二次开发◎

ArcGISEngineModel

ArcGISEngineCOMLib

11.DATASOURCESOLEDB

DataSourcesOLEDB库包含对MicrosoftOLE

DB数据源的GeoDatabaseAPI的实现。这个库只在

MicrosoftWindows操作系统中可用。这些数据源包括任

意支持数据提供者支持的OLEDB和文本文件工作空间。开

发人员不能扩展DataSourceOLEDB库。

12.DATASOURCESRASTER

DataSourceRaster库包含对栅格数据源的

GeoDatabaseAPI的实现。这些数据源包括SDE软件支持

的RDBMS以及所有支持的RDO栅格文件格式。当需要支持

新的栅格格式时,开发人员不能扩展此库,但可以扩展RDO。

R并gA目木台2土广届

基于ArcGISEngine二次开发◎

ArcGISEngineModel

ArcGISEngineCOMLib

13.GEODATABASEDISTIBUTED

GeoDatabaseDistributed库通过提供导入数据到

地理数据库或者从其中导出数据的工具来支持对企业地理数据

的分布式访问。开发人员不能扩展GeoDatabaseDistributed

库。

14.CARTO

Carto库支持地图的创建和显示,这些地图可由一

幅地图中的数据或带有许多地图和相关旁注的页面组成。

PageLayout对象为拥有一幅或多幅地图和它们相关旁注(指

北针、图例、比例尺等)的包容器。Map对象为图层的包容器。

Map对象拥有在地图中操作所有图层的属性:包括空间参照、

地图比例尺等,以及管理地图图层的方法。有许多类型的图层

基于ArcGISEngine二次开发◎

ArcGISEngineModel

ArcGISEngineCOMLib

14.CARTO

不同的数据源通常由相关的图层来显示地图上的数据;矢

量要素由FeatureLayer对象处理,栅格数据由

RasterLayer处理,TIN数据由TinLayer对象处理等等。

如果需要的话,图层可以处理与它们相关数据的所有绘制

操作,但对每个图层有相关的Renderer对象更为通用。

Renderers对象的属性控制数据如何在地图中显示。

Renderers通常对实际的制图采用Display库中的符号;

绘制方式用要绘制实体的属性简单地匹配一个特定的符号。

一个Map和PageLayout可以包含元素。元素包含定义自

身在地图和页面上位置的几何体,以及控制元素显示的行

为。包括基本形状、文本表、复杂旁注等元素。Carto库

“1石1反1、/+4口壬口升入右0十的古蚌

基于ArcGISEngine二次开发

ArcGISEngineModel

ArcGISEngineCOMLib

15.LOCATION

Location库包含支持地理编码和操作

路线事件的对象。地理编码功能可以通过所有

控件提炼的对象或GeocodeServer对象提供的

简化API来访问。开发人员可以创建自己的地理

编码对象。线性参考功能提供添加事件到线性

要素和使用不同的绘图选项绘制这些事件的对

象。开发人员可以扩展线性参考功能。

基于ArcGISEngine二次开发

ArcGLSEngineModel

ArcGISEngineCOMLib

16.NETWORKANALYSIS

NetworkAnalysis库提供用网络数据和对象组装

的地理数据库在网络加载到地理数据中时来分析它的对象。

开发人员可以扩展此库来支持自定义网络追踪。此库意味着

可操作公共事业网络一煤气线路、供电线路等。

17.CONTROLS

开发人员利用Controls库来构建或扩展具有

ArcGIS功能的应用程序。ArcGISControls通过节略ArcGIS

Engine和提供粗粒度的API来简化开发过程。尽管控件节略

了细粒度的ArcGISEngine,但仍不能限制对它们的访问。

MapControl和PageLayoutControl分另U节略了Carto库的

Mnn玉nDncal泰

基于ArcGISEngine二次开发◎

ArcGISEngineModel

ArcGISEngineCOMLib

17.CONTROLS

ReaderControl节略了Map和PagePlayout对

象,当操作控件时,提供一个简化的API。如果地图公布

人员已授权,开发人员可以用访问Map和PageLayout控

件类似的方式访问内部对象。此库还包含实现内容表的

TOCControl和拥有操作合适控件的命令与工具的

Toolbarcontrolo

开发人员通过创建自己的命令和工具来扩展Control库,这些

命令和工具用于控件的使用。为支持这一点,此库包含

HookHelper对象,该对象使得创建操作任意控件和

ArcGIS应用程序(如ArcMap)的命令更直接。

基于ArcGISEngine二次开发◎

ArcGISEngineModel

ArcGISEngineCOMLib

18.GEOANALYST

GeoAnalyst包含支持核心控件分析功

能的对象。这些功能在ArcGISSpatialAnalyst

和ArcGIS3DAnalyst库中使用。开发人员可以

通过创建新的栅格操作类型来扩展此库。利用此库

中的对象时,需要一个ArcGISSpatialAnalyst

或3DAnalyst的许可证。

基于ArcGISEngine二次开发二柒

ArcGISEngineModel

ArcGISEngineCOMLib

19.3DANALYST

3DAnalyst包含操作三维场景的对象,操作的

方式与Carto库中包含的操作二维地图对象的方式类似。

Scene对象是库中主要的对象之一,因为它是与Map对象

相似的数据包容器。Camera和Target对象指定考虑到要

素相对于观察者的位置时如何来查看场景。场景由一个或

多个图层组成,这些图层指定了场景中的数据以及如何绘

制数据。

3Danalyst库包含一个开发控件,它具有使用此控件的命

令和工具集。此控件可以用于关联Controls库中的对象。

对于开发人员在命令和工具的创建之上来扩展此库不是一

件寻常的事。操作此库中的对象要求有3DAnalyst的许可

证。

基于ArcGISEngine二次开发◎

ArcGISEngineModel

ArcGISEngineCOMLib

20.GLOBECORE

GlobeCore库包含操作全球数据的对象,操作方

式与Cart。库中包含的操作二维地图对象的方式相同。

Globe对象为库中的主要对象之一,因为它是与Map对象相

似的数据包容器。GlobeCamera对象指定考虑到要素相对

于观察者的位置时如何来查看Globe。Globe可以有一个或

多个图层,这些图层指定了Globe中的数据以及如何绘制这

些数据。

GlobeCore库包含一个开发控件,它具有使用此控件的命

令和工具集。此控件可以用于关联Controls库中的对象。

对于开发人员在命令和工具的创建之上来扩展此库并不寻常c

操作此库中的对象要求有3DAnalyst的许可证。

基于ArcGISEngine二次开发◎

ArcGISEngineModel

ArcGISEngineCOMLib

21.SPATIALANALYST

SpatialAnalyst库包含在栅格数据和矢量

数据上进行空间分析的对象。开发人员最常用的是

在库中使用这些对象,而且不扩展它们。在操作此

库中的对象要求有ArcGISSpatialAnalyst的许可

证。

基于ArcGISEngine二次开发◎

ArcGISEngineModel

ArcGISEngineCOMLib

22.FRAMEWORK

Framework库提供核心组件和软件接口来支持

用户界面组件和ArcGIS应用程序。Framework库中的许

多对象在ArcGIS应用程序内部使用来支持它们的定制环

境。在Framework用包含大量的帮助主题供并发者在创

建用户界面时使用,这些用户界面包含在一个ArcGIS应

用程序内,如ConPropertySheet,ModelessFrame和

MouseCursor这三个例子,以及支持ArcGIS应用程序内

部常用UI操作的对话框集合,如Colorselector和

NumberDialog为两个经常使用的对话框。开发人员在

使用属性页和停靠窗口来创建扩展的ArcGIS系统用户界

而日寸,可以使用Framework库定义的软件接口。升发人

员不能扩展Framework库,但是通过实现库中定义的接

口,开发人员可以扩展带有UI组件的ArcGIS体系结构。

基于ArcGISEngine二次开发

ArcGLSEngineModel

ArcGISEngineCOMLib

23.GEODATABASEUI

GeoDatabaseUI库提供了支持包含在

GeoDatabase库中对象的用户界面,包括属性页。

此库支持大量开发人员可以使用的对话框,

TableView,Calculator和版本对话框都在此库中

定义。开发人员不经常扩展此库。

基于ArcGISEngine二次开发◎

ArcGISEngineModel

ArcGISEngineCOMLib

24.DISPLAYUI

DisplayUI库提供了支持包含在Display

库中对象的用户界面,包括属性页。定义在

Display库中的所有符号在此库中定义了它们的属

性页。此库包含管理样式和符号的对话框。开发人

员为在Display库中创建的对应组件创建UI时,就

扩展了此库。

基于ArcGISEngine二次开发◎

ArcGISEngineModel

ArcGISEngineCOMLib

25.OUTPUTUI

OutputUI库提供了支持包含在

Output库中对象的用户界面,包括属性页。除了

属性页外,还有大量可用的对话框供开发人员使

用,包括PrintDialog和ExportDialog。开发人

员为在Output库中创建的对应组件创建UI时,就

扩展了此库。

基于ArcGISEngine二次开发

ArcGISEngineModel

ArcGISEngineCOMLib

26.CATALOG

Catalog库包含对象和定义接口来支持数

据目录。目录是永久数据的一种表达方式。数据可

以为本地的,也可以为远程的。通过使用目录中的

对象,开发人员可以浏览持有的数据,如果需要的

话,并可获取到数据的连接。在Catalog中定义的

许多对象被称为“GX〃对象。这些GX对象都实现

接口IGxObject。实现该接口的对象可以在目录

中管理。GxFilters也在此库中定义,它允许开发

人员浏览某种类型的数据。在开发人员想为一种不

被ArcGIS系统支持的数据类型添加目录支持时,

他们通常要扩展此库C

基于ArcGISEngine二次开发◎

ArcGISEngineModel

ArcGISEngineCOMLib

27.CATALOGUI

CatalogUI库提供了支持包含在Catalog

库中对象的用户界面,包括属性页。除了属性页外,

在与目录及其内容交互时,有大量对话框可供使用,

包括GxDialog。GxDialog对象支持ArcGIS应用

程序中的“AddData”功能。FindDialog也在此库

中实现。在ArcCatalog应用程序中看到的许多命令

和弹出菜单都在此库中定义。开发人员为在

Catalog库中创建的对应组件创建UI时,就扩展了

此库。

基于ArcGISEngine二次开发

ArcGISEngineModel

ArcGISEngineCOMLib

28.CARTOUI

CartoUI库提供了支持包含在Cart。库

中对象的用户界面,包括属性页。除了属性页外,

尽管包含在此库中的许多对话框通常需要通过属

性页来访问,仍有大量可用的对话框可供开发人

员使用,包括IdentifyDialog,开发人员为在

Carto库中创建的对应组件创建UI时,就扩展了

此库。

基于ArcGISEngine二次开发

ArcGISEngineModel

ArcGISEngineCOMLib

29.DATASOURCERASTERUI

DataSourceRasterUI库提供了支持

包含在DataSourceRaster库中对象的用户界面,

包括属性页。除了属性页外,仍有可用的对话框可

供开发人员使用,包括RasterSdeLoader和

SidEncodero开发人员为在DataSourceRaster

库中创建的对应组件创建UI时,就扩展了此库。

基于ArcGISEngine二次开发◎

ArcGISEngineModel

ArcGISEngineCOMLib

30.ARCCATALOGUI

ArcCataIogUI库提供特定的ArcCataIoq

应用程序的用户界面组件。在此库中可以找到特定南

ArcCatalog对话框的IDs。开爰人员木能批雇此库。

31.ARCCATALOG

ArcCatalog库包含ArcCatalog应用程序,

包括Application和Document对象。——些接口(如

IGxAppliation)在ArcCatalogUI库中定义。这是

因为在ArcCatalogUI库中的这迪对象使用

IGxAppliation接口与ArcCatalog应同程序交互。

GxDocument对象在ArcCatalog生命周期内激得不

同的事件,这些事件可被开发人员用来与

ArcCatalog的事件同步。开发人员不能扩展此库,

相反,他们创建在ArcCatalog应用程序中使用的命

令和工具。

基于ArcGISEngine二次开发◎

ArcGISEngineModel

ArcGISEngineCOMLib

32.ARCMAPUI

ArcMapUI库提供特定的ArcMap应用

程序的用户界面组件。此库中包含的组件不能在

ArcMap上下文之外使用。IMxApplication和

IMxDocument接口在此库中定义尽管它们在

ArcMap库中实现。ArcMap内容表和许多ArcMap

中表示的命令一样在此库中实现。开发人员通过创

建ArcMap应用程序内使用的自定义命令和工具来

扩展此库。

基于ArcGISEngine二次开发

ArcGISEngineModel

ArcGISEngineCOMLib

33.EDITOR

Editor库实现了ArcMap对象编辑器。编

辑器支持对简单要素、网络要素、注记和拓扑要素

以及所有这些要素的属性进行编辑。此库既支持用

户界面又支持编程的API。Editor提供的API比

GeoDatabase库提供的API级另U要高。鼓励开发

人员在编辑和管理地理数据库中的要素时使用

EditorAPIo开发人员可以使用自己的编辑命令、

编辑任务和捕捉代理来扩展此库。对于更高级别的

定制,开发人员可以创建编辑器的扩展模块。对象

检查器界面由Editor库实现,然而,要扩展此用户

界面,Class扩展模块通过扩展合适数据源的

GeoDatabase库来实现。

基于ArcGISEngine二次开发

ArcGLSEngineModel

ArcGISEngineCOMLib

34.LOCATIONUI

LocationUI库提供了支持包含在

Location库中对象的用户界面,包括属性页。除

了属性页外,仍有可用的对话框供开发人员使用,

包括EventFinder和AddressLocatorUL此库

也包含扩展其它ArcGIS系统核心库(如Catalog,

CatalogUI,CartoUI)的对象。开发人员为在

Location库中创建的对应组件创建UI时,就扩展

了此库。

基于ArcGISEngine二次开发◎

rcGisEngineModel

ArcGISEngineCOMLib

35.ARCMAP

ArcMap库包含由Application对象实现的

ArcMap应用程序。与ArcCatalog库相彳以,

Application对象从其他库中实现薮口,艮口ArcMapUL

ArcMap应用程序可由开发人员编写包含在应用程序中

或通过OLE自动化实现的新命令和新工具来控制。

ArcMap使用的所有对象都在ArcMap的上下文中创建,

这一点非常重要。为支持这个编程模型,应用程序实现

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论