【测绘课件】第七讲组件式GIS与MapX基础.ppt
《【测绘课件】第七讲组件式GIS与MapX基础.ppt》由会员分享,可在线阅读,更多相关《【测绘课件】第七讲组件式GIS与MapX基础.ppt(92页珍藏版)》请在三一文库上搜索。
1、MapInfo概论,第一讲 MapInfo简介及基本概念 第二讲 MapInfo基本操作表 第三讲 MapInfo查询及分析 第四讲 空间分析及属性信息图形化 第五讲 OLE 嵌入与MapBasic 简介 第六讲 MapInfo集成地图开发 第七讲 组件式GIS与MapX基础 第八讲 MapX应用开发,第七讲 组件式GIS与MapX基础,一、组件式GIS与MapX 1.1 GIS开发的三种实现方式 1.2 ActiveX技术及GIS组件 1.3 MapX简介 二、MapX详解 2.1 Layers 集合属性 2.2 Features 和 Selections 2.3 MapX工具,一、组件式G
2、IS与MapX,1.1 GIS开发的三种实现方式,地理信息系统(GIS)根据其内容可分为两大基本类型:一是工具型地理信息系统,也就是GIS工具软件包,如MapInfo、ARC/INFO等,具有空间数据输入、存储、处理、分析和输出等GIS基本功能;二是应用型地理信息系统,以某一专业、领域或工作为主要内容,包括专题地理信息系统和区域综合地理信息系统。随着地理信息系统应用领域的扩展,应用型GIS的开发工作日显重要。 应用型地理信息系统的开发方式主要有以下三种: 独立开发:所有的算法都由开发者独立设计; 单纯二次开发:完全借助于GIS工具软件提供的开发语言进行应用系统开发,如ArcView提供了Ave
3、nue语言,MapInfo提供了MapBasic语言等;,集成二次开发:利用专业的GIS工具软件,如ArcView、MapInfo等,实现GIS的基本功能;以通用软件开发工具尤其是可视化开发工具,如Delphi、Visual C+、Visual Basic等为开发平台,进行二者的集成开发。集成开发有两种方式: (1) OLE/DDE:采用OLE Automation技术或DDE技术,用软件开发工具开发前台可执行应用程序,以OLE自动化方式或DDE方式启动GIS工具软件在后台执行,利用回调(CallBacks)技术动态获取其返回信息,实现应用程序中的地理信息处理功能; (2) GIS控件:利用G
4、IS工具软件生产厂家提供的建立在OCX技术基础上的GIS功能控件,如ESRI的MapObjects、MapInfo公司的MapX等,在Delphi、 Visual Basic等编程工具编制的应用程序中,直接将GIS功能嵌入其中,实现地理信息系统的各种功能。,由于独立开发难度太大,单纯二次开发受GIS工具提供的编程语言的限制差强人意,因此结合GIS工具软件与当今可视化开发语言的集成二次开发方式就成为GIS应用开发的主流。 优点:既可以充分利用GIS工具软件对空间数据库的管理、分析功能,又可以利用其它可视化开发语言具有的高效、方便等编程优点,集二者之所长,大大提高应用系统的开发效率,且具有更好的外
5、观效果,更强大的数据库功能,可靠性好、易于移植、便于维护。尤其是使用OCX技术利用GIS组件进行集成开发,更能表现出这些优势。 缺点:前期投入较大,需同时购买GIS工具软件和可视化编程软件。 与OLE技术相比,利用ActiveX控件开发速度快,可使开发者避开某些应用的具体编程,直接调用控件,实现这些具体应用,从而使编程过程更简洁;而且占用资源少,易实现许多底层的编程和开发功能。,集成二次开发的优缺点,1.2 ActiveX技术及GIS组件,一、组件式GIS与MapX,1、ActiveX 技术 ActiveX是Microsoft为了使开发人员能够把计算机桌面环境与构成Internet及其大量资源
6、的环境集成起来,同时保护在Windows中现有的开发投资而提供的一种技术。ActiveX包括对两个现有Microsoft技术的一系列扩充和增强,这两个技术是:Win32 API和组件对象模型(COM)。由于ActiveX控件是被封装起来的,它适合于各种编程语言(如VB、VC+等),因此只需知道控件支持的属性、方法和事件,就可使用控件。 所谓ActiveX组件是指一些可执行的代码,比如一个.exe,.dll或.ocx文件,它们在提供对象时遵循ActiveX的规范。通过ActiveX技术,程序员就能够把这些可复用的软件组装到应用程序或者服务程序中去。,2、组件式GIS 是把GIS的各大功能模块划分
7、为几个控件,每个控件完成不同的功能。各个GIS控件之间,以及GIS控件与其它非GIS控件之间,可以方便地通过可视化的软件开发工具集成起来,形成最终的GIS应用。控件如同一堆各式各样的积木,它们分别实现不同的功能(包括GIS和非GIS功能),根据需要把实现各种功能的“积木”搭建起来,就构成应用系统。 (1)组件式GIS开发平台的结构 基础组件:面向空间数据管理,提供基本的交互过程,并能以灵活的方式与数据库系统连接; 高级通用组件:由基础组件构造而成,面向通用功能,简化用户开发过程,如显示工具组件、选择工具组件、编辑工具组件、属性浏览器组件等等。它们之间的协同控制消息都被封装起来。这级组件经过封装
8、后,使二次开发更为简单;,行业性组件:抽象出行业应用的特定算法,固化到组件中,进一步加速开发过程。以GPS监控为例。对于GPS应用,除了需要地图显示、信息查询等一般的GIS功能外,还需要特定的应用功能,如动态目标显示、目标锁定、轨迹显示等。这些GPS行业性应用功能组件被封装起来后,开发者的工作就可简化为设置显示目标的图例、轨迹显示的颜色、锁定的目标,以及调用、接受数据的方法等。 缺点:效率相对低下;支持的空间数据量有限;支持的功能有限,只覆盖了GIS系统的部分功能;系统的可靠性、容错性有待提高。开发及使用过程中必须时刻注意Windows系统OLE系统注册表的正确。 GIS构件的设计主要遵循应用
9、领域的需求。例如ESRI地MapObjects就是以空间数据访问、查询、制图为主要目标的GIS构件。GIS组件的代表作应首推MapObjects以及MapX等。,MapObjects和MapX的主要功能对比,一、组件式GIS与MapX,1.3 MapX简介,1、MapX地图化的ActivX MapX是MapInfo公司向用户提供的具有强大地图分析功能的ActiveX控件产品。由于它是一种基于Windows操作系统的标准控件,因而能支持绝大多数标准的可视化开发环境如Visual C+、Visual Basic、Delphi、PowerBuilder等。编程人员在开发过程中可以选用自己最熟悉的开发
10、语言,轻松地将地图功能嵌入到应用中,并且可以脱离MapInfo的软件平台运行。利用MapX能够简单快速地在企业应用中嵌入地图化功能,增强企业应用的空间分析能力,实现企业应用的增值。MapX采用基于MapInfo Professional的相同的地图化技术,可以实现MapInfo Professional具有的绝大部分地图编辑和空间分析功能。而且MapX提供了各种工具、属性和方法,实现这些功能是非常容易的。,工具箱是一个控件集,里面包括在程序中可以被用到的控件。用户自定义的控件也可以增加到工具箱里。 把MapX增加到工具箱中去: 工程 菜单 部件 选中MapInfo MapX V5项 确定 OK
11、 现在就可以在程序中增加地图了 在工具箱中选择 MapX的 控制图标 在窗体中放置MapX控件,就可以看到一个缺省的(美国)地图显示在应用程序窗体上了。 属性页,在VB中加入MapX组件,2、MapX的空间数据结构 从横向分析,MapX采取的空间数据结构是基于空间实体和空间索引相结合的一种结构。空间实体是地理图形的抽象模型,主要包括点、线、面三种类型。任何点、线、面实体都可以用直角坐标点x、y来表示。点可以表示成一组坐标(x,y),对于线和面,则均被表示成多组坐标(x1,y1;x2,y2;xn,yn)。空间索引是查询空间实体的一种机制,通过空间索引,就能够以尽量快的速度查询到给定坐标范围内的空
12、间实体及其所对应的数据。 从纵向分析,MapX的空间数据结构是一种分层存放的结构。用户可以通过图形分层技术,根据自己的需求或一定的标准对各种空间实体进行分层组合,将一张地图分成不同图层。采用这种分层存放的结构,可以提高图形的搜索速度,便于各种不同数据的灵活调用、更新和管理。,MapX模型结构,3、MapX的基本属性 (1)Map:每个Map对象主要包括Datasets、Layers、Annotations三个对象集合。主要的属性:Zoom用来设置放大级别(在地图上显示的大小),Rotation控制地图的旋转角度,CenterX和CenterY用于设置x和y的坐标系,这要取决于地图的投影。Map
13、对象的许多属性本身又是一个对象,比如说一幅地图由多个图层组成,则在一个Map对象中存在一个单独的layers集合,其中包含所有图层的信息。 (2)Layers:在MapX中,每张单独的地图都被表示成单独的一个图层,所有的图层存储在layers集合中。Layers集合由Layer对象组成,按顺序编号为0到n。Layer对象由features对象组成,features对象又是由Feature对象组成,对应于地图中的点、线、区域或符号。最下面的图层最先绘制,最上面的图层最后绘制;选择工具总是从可选择图层中的最上层开始选择。,(3)GeoSets:GeoSet是在GeoSet Manager中建立好的
14、.GST文件,类似MapInfo中的WorkSpace概念,是图层及其设置的集合,控制程序中显示的地图。也可以在运行阶段设置GeoSet,此时将导致已经加载的所有图层和DataSet被删除而由GeoSet中定义的图层所代替。如果单纯地想删除所有图层,只需给GeoSet赋一个空字符串即可。 当打开GeoSet文件时,所有的地图图层和设置都将以保存值返回。使用geosetmanager的时候,所有的.gst文件要放在C:Program FilesMapInfoMapX 5.0Maps目录下。可以调用GeoDictionary Manager程序进行修改,指向用户程序数据所在的位置。 (4)Data
15、sets:Datasets用于实现地图与数据的绑定。 建立地图信息与属性数据之间联系的过程称之为自动绑定或自动匹配(autobinding /automatching)。要实现这一过程,必须首先将地图在GeoDictionaryMananger中注册。属性数据表示的可视化使得创建专题地图(Theme)成为可能。,(5)Annotations: Annotations集合提供了操纵地图中文字和符号的简单方法。Annotations位于所有其它图层的上方并且不与任何数据连接,类似于MapInfo中的装饰图层。Annotations包括以下主要的属性与方法:AddSymbol、AddText、Rem
16、ove Annotations还有一个非常重要的属性Graphic,其定义为Graphic对象,在该对象中包含了符号或文本的样式、位置等信息,即Graphic的Caption、Position、Style 、X、Y属性。如Annotations的Type属性定义为miTextAnnotation,则可以定义Graphic的Caption属性设置标注的字符串。 (6)可创建对象:在MapX对象模型中,以下对象是可以被创建的: AffineTransform、BindLayer、BitmapSymbols、CoordSys、Datum、Feature、Fields、LayerInfo、Map、OD
17、BCQueryInfo、Parts、Point、Points、Rectangle、RowValue、RowValues、Style、Variables、NotesQueryInfo、NotesViewInfo,(7)GeoDictionary:利用MapX作数据绑定或创建专题地图时,可以用 GeoDictionary来匹配数据源与地图图层,实际上是一个文件包含有数据绑定信息的geodict.dct。GeoDictionary是一个保存了关于哪个地图图层可以匹配、哪个字段可以用作匹配字段的信息文件(一般命名为 geodict.dct)。如果想运用自动匹配/自动绑定,则必须在 GeoDiction
18、aryManager中注册MapInfo文件。在MapX GeoSet Manager的“Tools”菜单下选择“Run GeoDictionary Manager”选项。MapX GeoDictionaryManager程序允许把新的MapInfo表注册到GeoDictionary中。在GeoDictionaryManager中,单击“注册表”按钮,然后选择要注册的表,设置表属性并为其输入描述。如果要想自动地把这张表加载到GeoSet中,单击添加按钮然后选择要把表添加进的GeoSet。 用作数据绑定的图层至少要有一个索引字段。,对象object 包含代码和数据。一个对象可以是一个应用的一部分
19、,如一个放在窗体上的控件或窗体。一个应用也可是一个对象。 属性property 描述对象的变量。 方法method 描述对象行为。 事件event 描述对象动作,以及这个工作将如何响应。 集合collection 包含一组对象。 主要的集合对象:Geosets,Layers,Features,Parts,Points,Annotatons,Datasets,Fields,SourceRows,Themes 集合对象的共性: 属性:Count 、Item 方法:Add、Remove 、RemoveAll,术语说明:,二、MapX详解,2.1 Layers 集合属性,用户的数据反映在地图上通常根据
20、点、线、面的层次结构进行归类。每一个独立的图层都可以作为一个独立的地图。MapX中调用的是一个由多个独立地图图层组成的地图集合。Layers集合由 Layer对象组成。Layers集合具有用来从集合添加和删除 Layer对象的方法和属性。 1、Layers 集合的方法 (1)图层控制对话框:Map1.Layers.LayersDlg (2)创建新层:Dim lyr as layer Set lyr = Map1.Layers.CreateLayer (“Temporary”) (3)加入图层:Map1.Layers.Add “C:DataIreland.tab” (4)删除图层:Map1.La
21、yers.Remove 3 (5)重定位图层:Map1.Layers.Move 1,2,(6)用户绘制图层:Map1.AddUserDrawLayer 当需要绘制图层时,它与激活的DrawUserLayer事件结合在一起使用。该方法返回新创建的Layer对象。 2、Layers 集合的属性: Bounds:返回代表集合中所有地图图层的地理范围 Count:获得集合中的图层数目 Item:从集合中获得特定的 Layer 对象 名称或者索引 3、Layer对象的属性: Layer 对象代表具有主要图元类型(如区域、线条和符号)的地图窗体中的矢量地图化数据,对应于一张 MapInfo 表中的地理对象
22、。Layers集合中的每一个 Layer 对象的行为独立于其他对象。它们的样式更改、图层缩放的更改都基于单个图层,而不会影响其他图层。,Name:图层的名称 AutoLabel:控制图层是否自动标注 OverrideStyle:是否替代该图层的默认显示特性 Selectable, Editable, Visible: Style:如果 OverrideStyle 为真时图层样式将应用 ZoomLayer, ZoomMax, ZoomMin:设置图层缩放打开或关闭及缩放级别 Type:图层类型 miLayerTypeNormal FeatureType:每一图层的图元类型 miFeatureTy
23、peRegion LabelProperties:控制自动标注的位置、显示和外观(多种属性) 交互式标注:可设置 Map1.CurrentTool 属性为 miLabelTool(1010) 用户将可通过单击图元进行标注。,(1)LabelProperties 控制标注显示: 要为图层自动生成标注,可以设置图层的AutoLabel属性为True。 每个图层对象都有LabelProperties对象,用来控制标注的许多方面:Visible;LabelMax;Duplicate;Overlap 缩放图层标注:设置LabelZoom、LabelZoomMax和LabelZoomMin属性。 标注位置
24、:设置 Position、Offset、Parallel属性。 创建引注:为想要标注的图层设置LabelProperties.LineType属性为 miLineTypeSimple (1) 或 miLineTypeArrow (2)。 标注样式:要更改所有标注的样式,可设置Style。 (2)注释(Annotations) 可添加文本或符号注释到地图,绘制在地图的顶层。 不同于标注的是,文本注释不与数据连接,且没有任何属性来设置位置、符号样式或文本,使用Graphic属性获取Graphic对象后修改,4、动态图层(Animation): Animation图层在地图图元需要经常更新(例如在实
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测绘课件 测绘 课件 第七 组件 GIS MapX 基础
链接地址:https://www.31doc.com/p-3102388.html