第七讲组件式GIS与MapX基础羊 组件式GIS与MapX 1GIS开发的三种实现方式 12 Activex技术及GIS组件 1.3 Map. X简介 二、MapX详解 21 Layers集合属性 2.2 Features FH Selections 23MapX工具 Page 2 MapI p Info
Page 2 •第七讲 组件式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工具
组件式GIS与MapX 1.1GIS开发的三种实现方式 地理信息系统(GIS)根据其內容可分为两大基本类型: 一是工具型地理信息系统,也就是GⅠS工具软件包,如 Mapinfo、ARC/INFO等,具有空间数据输入、存储、处理、 分析和输出等GIS基本功能;二是应用型地理信息系统,以 某一专业、领域或工作为主要内容,包括专题地理信息系统 和区域综合地理信息系统。随着地理信息系统应用领域的扩 展,应用型GIS的开发工作日显重要。 应用型地理信息系统的开发方式主要有以下三种 独立开发:所有的算法都由开发者独立设计; 单纯二次开发:完全借助于GIS工具软件提供的开发语言 进行应用系统开发,如 Arcview提供了 Avenue语言, Mapinfo 提供了 MapBasic语言等 E MapInfo
Page 3 •一、组件式GIS与MapX 1.1 GIS开发的三种实现方式 地理信息系统(GIS)根据其内容可分为两大基本类型: 一是工具型地理信息系统,也就是GIS工具软件包,如 MapInfo、ARC/INFO等,具有空间数据输入、存储、处理、 分析和输出等GIS基本功能;二是应用型地理信息系统,以 某一专业、领域或工作为主要内容,包括专题地理信息系统 和区域综合地理信息系统。随着地理信息系统应用领域的扩 展,应用型GIS的开发工作日显重要。 应用型地理信息系统的开发方式主要有以下三种: • 独立开发:所有的算法都由开发者独立设计; • 单纯二次开发:完全借助于GIS工具软件提供的开发语言 进行应用系统开发,如ArcView提供了Avenue语言,MapInfo 提供了MapBasic语言等;
集成二次开发:利用专业的GIS工具软件,如 Arcview、 Mapinfo等,实现GIS的基本功能;以通用软件开发工具尤其是可 视化开发工具,如 Delphi、 Visual c艹、 Visual basic等为开发 平台,进行二者的集成开发。集成开发有两种方式: (1) OLE/DDE:采用 OLE Automation技术或D技术,用软件 开发工具开发前台可执行应用程序,以OLE自动化方式或DDE方 式启动GIs工具软件在后台执行,利用回调( Callbacks)技术动 态获取其返回信息,实现应用程序中的地理信息处理功能; (2)GIS控件:利用GIS工具软件生产厂家提供的建立在OCX技 术基础上的GⅠS功能控件,如ESRI的 Mapobjects、 Maplnfo公司的 MapX等,在 Delphi、Ⅴ i sual basic等编程工具编制的应用程序 中,直接将GIS功能嵌入其中,实现地理信息系统的各种功能 Page 4 MapI p Info
Page 4 • 集成二次开发:利用专业的GIS工具软件,如ArcView、 MapInfo等,实现GIS的基本功能;以通用软件开发工具尤其是可 视化开发工具,如Delphi、Visual C++、Visual Basic等为开发 平台,进行二者的集成开发。集成开发有两种方式: (1) OLE/DDE:采用OLE Automation技术或DDE技术,用软件 开发工具开发前台可执行应用程序,以OLE自动化方式或DDE方 式启动GIS工具软件在后台执行,利用回调(CallBacks)技术动 态获取其返回信息,实现应用程序中的地理信息处理功能; (2) GIS控件:利用GIS工具软件生产厂家提供的建立在OCX技 术基础上的GIS功能控件,如ESRI的MapObjects、MapInfo公司的 MapX等,在Delphi、 Visual Basic等编程工具编制的应用程序 中,直接将GIS功能嵌入其中,实现地理信息系统的各种功能
集成二次开发的优缺点 由于独立开发难度太大,单纯二次开发受GIS工具提供的编程语言的 限制差强人意,因此结合GⅠS工具软件与当今可视化开发语言的集成二 次开发方式就成为GS应用开发的主流。 优点:既可以充分利用GIS工具软件对空间数据库的管理、分析功 能,又可以利用其它可视化开发语言具有的高效、方便等编程优点,集 二者之所长,大大提高应用系统的开发效率,且具有更好的外观效果, 更强大的数据库功能,可靠性好、易于移植、便于维护。尤其是使用 0CX技术利用GIS组件进行集成开发,更能表现出这些优势 缺点:前期投入较大,需同时购买GIS工具软件和可视化编程软件。 与OE技术相比,利用 Activex控件开发速度快,可使开发者避开某 些应用的具体编程,直接调用控件,实现这些具体应用,从而使编程 过程更简洁;而且占用资源少,易实现许多底层的编程和开发功能。 Page 5 E MapInfo
Page 5 由于独立开发难度太大,单纯二次开发受GIS工具提供的编程语言的 限制差强人意,因此结合GIS工具软件与当今可视化开发语言的集成二 次开发方式就成为GIS应用开发的主流。 优点:既可以充分利用GIS工具软件对空间数据库的管理、分析功 能,又可以利用其它可视化开发语言具有的高效、方便等编程优点,集 二者之所长,大大提高应用系统的开发效率,且具有更好的外观效果, 更强大的数据库功能,可靠性好、易于移植、便于维护。尤其是使用 OCX技术利用GIS组件进行集成开发,更能表现出这些优势。 缺点:前期投入较大,需同时购买GIS工具软件和可视化编程软件。 与OLE技术相比,利用ActiveX控件开发速度快,可使开发者避开某 些应用的具体编程,直接调用控件,实现这些具体应用,从而使编程 过程更简洁;而且占用资源少,易实现许多底层的编程和开发功能。 集成二次开发的优缺点
组件式GIS与MapX 12 Activex技术及GIS组件 1、 ActiveX技术 ActiveX是 Microsoft为了使开发人员能够把计算机桌面环 境与构成lnη ternet及其大量资源的环境集成起来,同时保护在 Windows中现有的开发投资而提供的一种技术。 ActiveX包括对 两个现有 Micros代t技术的一系列扩充和增强,这两个技术是: win32AP和组件对象模型(COM)。由于 ActiveX控件是被封装 起来的,它适合于各种编程语言(如vB、V0+等),因此只需 知道控件支持的属性、方法和事件,就可使用控件 所谓 ActiveX组件是指一些可执行的代码,比如一个.exe, d或.ocx文件,它们在提供对象时遵循 ActiveX的规范。通过 ActiveX技术,程序员就能够把这些可复用的软件组装到应用程 序或者服务程序中去 Page 6 MapI p Info
Page 6 1.2 ActiveX技术及GIS组件 •一、组件式GIS与MapX 1、ActiveX 技术 ActiveX是Microsoft为了使开发人员能够把计算机桌面环 境与构成Internet及其大量资源的环境集成起来,同时保护在 Windows中现有的开发投资而提供的一种技术。ActiveX包括对 两个现有Microsoft技术的一系列扩充和增强,这两个技术是: Win32 API和组件对象模型(COM)。由于ActiveX控件是被封装 起来的,它适合于各种编程语言(如VB、VC++等),因此只需 知道控件支持的属性、方法和事件,就可使用控件。 所谓ActiveX组件是指一些可执行的代码,比如一个.exe, .dll或.ocx文件,它们在提供对象时遵循ActiveX的规范。通过 ActiveX技术,程序员就能够把这些可复用的软件组装到应用程 序或者服务程序中去
2、组件式G|S 是把GIS的各大功能模块划分为几个控件,每个控件完成不同的功 能。各个GIS控件之间,以及GIS控件与其它非GIS控件之间,可以方便 地通过可视化的软件开发工具集成起来,形成最终的GIS应用。控件如 同一堆各式各样的积木,它们分别实现不同的功能(包括GS和非GIS功 能),根据需要把实现各种功能的“积木”搭建起来,就构成应用系统。 (1)组件式GIS开发平台的结构 基础组件:面向空间数据管理,提供基本的交互过程,并能以灵活 的方式与数据库系统连接; 高级通用组件:由基础组件构造而成,面向通用功能,简化用户开 发过程,如显示工具组件、选择工具组件、编辑工具组件、属性浏览器 组件等等。它们之间的协同控制消息都被封装起来。这级组件经过封装 后,使二次开发更为简单; Page 7 MapI p Info
Page 7 2、组件式GIS 是把GIS的各大功能模块划分为几个控件,每个控件完成不同的功 能。各个GIS控件之间,以及GIS控件与其它非GIS控件之间,可以方便 地通过可视化的软件开发工具集成起来,形成最终的GIS应用。控件如 同一堆各式各样的积木,它们分别实现不同的功能(包括GIS和非GIS功 能),根据需要把实现各种功能的“积木”搭建起来,就构成应用系统。 (1)组件式GIS开发平台的结构 • 基础组件:面向空间数据管理,提供基本的交互过程,并能以灵活 的方式与数据库系统连接; • 高级通用组件:由基础组件构造而成,面向通用功能,简化用户开 发过程,如显示工具组件、选择工具组件、编辑工具组件、属性浏览器 组件等等。它们之间的协同控制消息都被封装起来。这级组件经过封装 后,使二次开发更为简单;
行业性组件:抽象出行业应用的特定算法,固化到组件中,进一 步加速开发过程。以GPS监控为例。对于GPS应用,除了需要地图显示 信息查询等一般的GIS功能外,还需要特定的应用功能,如动态目标 显示、目标锁定、轨迹显示等。这些GPS行业性应用功能组件被封装 起来后,开发者的工作就可简化为设置显示目标的图例、轨迹显示的 颜色、锁定的目标,以及调用、接受数据的方法等。 缺点:效率相对低下;支持的空间数据量有限;支持的功能有限 只覆盖了G|S系统的部分功能;系统的可靠性、容错性有待提高。开 发及使用过程中必须时刻注意 Windows系统0LE系统注册表的正确。 GIS构件的设计主要遵循应用领域的需求。例如ESR地Map0b」 jects 就是以空间数据访问、查询、制图为主要目标的GIS构件。GIS组件的 代表作应首推Map0 b jects以及MapX等。 Page 8 MapI p Info
Page 8 • 行业性组件:抽象出行业应用的特定算法,固化到组件中,进一 步加速开发过程。以GPS监控为例。对于GPS应用,除了需要地图显示、 信息查询等一般的GIS功能外,还需要特定的应用功能,如动态目标 显示、目标锁定、轨迹显示等。这些GPS行业性应用功能组件被封装 起来后,开发者的工作就可简化为设置显示目标的图例、轨迹显示的 颜色、锁定的目标,以及调用、接受数据的方法等。 缺点:效率相对低下;支持的空间数据量有限;支持的功能有限, 只覆盖了GIS系统的部分功能;系统的可靠性、容错性有待提高。开 发及使用过程中必须时刻注意Windows系统OLE系统注册表的正确。 GIS构件的设计主要遵循应用领域的需求。例如ESRI地MapObjects 就是以空间数据访问、查询、制图为主要目标的GIS构件。GIS组件的 代表作应首推MapObjects以及MapX等
Mapobjects和MapX的主要功能对比 功能 Mapobjects+ MapX Arcview的SHP、ARC/INFO的 显示的地图数据格式 coverage、SDE图层 MapInfo的数据格式 盎加栅格图像 有 有 匚对地图的常用操作。放大、缩小、漫游等 放大、缩小、漫游等φ 图层控制 增加、移走、设置当前层φ 增加、移走、设置当前层 属性数据绑定有 有 1.通过鼠标选取特征 1.通过鼠标选取特征 地图信息查询方式2.通过sQL查找特征 2.通过SQL查找特征 3.通过空间操作选取特征。3.通过空间操作选取特征 专题地图 较弱 GFS集成 有 用户绘图图层4 无 有有有 ++ 生成辑地图对象。较弱 较弱 地图标注 有 有 地图符号化 较弱 较强 分析功能 地理编码φ 无有 无有 可使用的开发语言心 、v、 Power Builder、 Delph C、v、 PowerBuilder、 ccess等 Delphi、 Lotus notes等中 Page 9 MapI p Info
Page 9 MapObjects和MapX的主要功能对比
组件式GIS与MapX 13MapX简介 1、MapX—地图化的 ActivX MapX是 MapInfo公司向用户提供的具有强大地图分析功能的 Activex 控件产品。由于它是一种基于 Windows操作系统的标准控件,因而能支 持绝大多数标准的可视化开发环境如 Visua丨C++、 Visual bas ic、 De l ph i、 Power Buil der等。编程人员在开发过程中可以选用自己最熟 悉的开发语言,轻松地将地图功能嵌入到应用中,并且可以脱离 Map Info的软件平台运行。利用MapX能够简单快速地在企业应用中嵌入 地图化功能,增强企业应用的空间分析能力,实现企业应用的增值。 MapX采用基于 Map Info profess iona的相同的地图化技术,可以实现 Map Info profess iona具有的绝大部分地图编辑和空间分析功能。而 且MapX提供了各种工具、属性和方法,实现这些功能是非常容易的。 Page 10 MapI p Info
Page 10 •一、组件式GIS与MapX 1.3 MapX简介 1、MapX—地图化的ActivX MapX是MapInfo公司向用户提供的具有强大地图分析功能的ActiveX 控件产品。由于它是一种基于Windows操作系统的标准控件,因而能支 持绝大多数标准的可视化开发环境如Visual C++、Visual Basic、 Delphi、PowerBuilder等。编程人员在开发过程中可以选用自己最熟 悉的开发语言,轻松地将地图功能嵌入到应用中,并且可以脱离 MapInfo的软件平台运行。利用MapX能够简单快速地在企业应用中嵌入 地图化功能,增强企业应用的空间分析能力,实现企业应用的增值。 MapX采用基于MapInfo Professional的相同的地图化技术,可以实现 MapInfo Professional具有的绝大部分地图编辑和空间分析功能。而 且MapX提供了各种工具、属性和方法,实现这些功能是非常容易的
在VB中加入MapX组件 屈性页 General x 工 M 颜色 t圖 General Layers I Data I Th 以字中可以被用到 的控显 ited States 口到工具箱里。 A Rotation □·把M a 002857749287 Redraw Centery 1210893702219 Projection ted sta A Current 1000-Arrow 口ap1Map 按字母序|按分类序 确定 取消 应用() 名称) 〔自定义〕 现在就可以在程序中增加地图了 AutoRedraw BcC1x口000o 在工具箱中选择Ma)的控制图标更,m 96.000285774 39.121089370E CheckEscapeKey 20 在窗体中放置MapX控件,就可以看到 urrentTool1000-miArrcx 网曾 美国)地图显示在应用程序窗体上了 〔自定义 属性页 MapI p Info
Page 11 ◆ 工具箱是一个控件集,里面包括在程序中可以被用到 的控件。用户自定义的控件也可以增加到工具箱里。 ◆ 把MapX增加到工具箱中去: • 工程 菜单 → 部件 • 选中MapInfo MapX V5项 • 确定 OK ◆ 现在就可以在程序中增加地图了 • 在工具箱中选择 MapX的 控制图标 • 在窗体中放置MapX控件,就可以看到一个缺省的( 美国)地图显示在应用程序窗体上了。 • 属性页 在VB中加入MapX组件