《GIS地理信息系统.docx》由会员分享,可在线阅读,更多相关《GIS地理信息系统.docx(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、GIS地理信息系统资环 五班王周通一地理信息系统随着计算机技术的不断发展,地理信息系统(GIS)的应用领域也在不断拓展,如今地理信息系统已经在测绘、规划、国土、电力、道路、公共管理等诸多领域发挥了巨大的作用。把先进的计算机技术引入到土地利用评价之中,正在逐步成为土地利用评价的新兴手段。针对土地利用评价的特点,结合GIS的定量化评定方法,我们可以将GIS技术引入到土地利用评价中。然而由于针对土地利用评价的应用型GIS软件非常少见,尚不能完全满足土地利用评价的要求。而当前流行的组件式GIS开发方式,为解决这一问题,提供了很好的工具。因此本研究就以土地利用评价对计算机技术的需求而进行,通过工具型GI
2、S软件的二次开发来实现土地利用评价的专业GIS应用。MapGIS是一个工具型GIS,具有二次开发能力。其二次开发接口为一组定义在空间模型之上的函数集,借助于这组接口函数,用户可以在各种通用的编程环境下,建造面向特定领域的应用型GIS。本文利用VB可视化开发语言进行MapGIS二次开发的理论和技术方法的研究,在通用可视化编程语言VB环境下,在MapGIS65SDK基础上,集成了土地利用评价的诸多评价模型。提高土地利用评价的效率和精度。地理信息系统根据其内容可以分为两大基本类型:一是应用型GIS,是以某一专业、领域或工作为主要内容,包括专题GIS和区域综合GIS;二是工具型GIS,也就是GIS工具
3、包(如ArcInfo、MapGIS等)具有数据输入、存储、处理、分析和输出等GIS基本功能。随着GIS应用领域的扩展,应用型GIS的开发工作日益重要。具体说来GIS二次开发有三种实现方式。第一种是独立开发,这一开发方式是指不依赖于任何GIS工具软件,从空间数据的采集、编辑到数据的处理分析及结果输出,所有的算法都由开发者独立实现。然后选用某种程序设计语言(如Visual C+、Delphi等)在一定的操作系统平台上编程实现。第二种开发方式是单纯的二次开发,这种开发方式完全借助于GIS工具软件的开发语言进行应用系统开发。GIS工具软件大多提供了可供用户进行二次开发的宏语言。用户可以利用这些宏语言,
4、以原GIS工具软件为开发平台,开发出针对不用应用对象的应用程序。第三种开发方式是集成的二二次开发。这一方式是指利用专业GIS工具软件(如ArcView,Maplnfo等),实现GIS的基本功能,以通用软件开发工具尤其是可视化开发工具:如Delphi,Visual C+,Visual Basic,Power Builder等作为开发平台,进行二者的集成开发。而集成开发目前有两种开发方式,一种是OLEDDE方式,另一种是GIS组件开发。二地理信息系统组件式开发组件技术是最近几年提出的一种新的软件工程技术, 它是面向对象技术的延伸, 它使近二十年来兴起的面向对象技术进入到成熟的实用化阶段。组件是一段
5、可重复使用的程序代码和数据,它由一个或多个对象组成。组件技术设计思想的关键在于:程序代码片段可直接使用,无需重新编译;开发人员不需程序源码;组件不限于一种编程语言,即所谓的“二进制重用,【431。组件式地理信息系统是面向对象技术和组件式软件在地理信息系统软件开发中的具体应用,其技术基础为组件式对象棋型和Activex控件。组件式对象模型(component object model,COM)是OLE(object Linking&Embedding)和Active的基础。COM所建立的是一个软件模块。与另一个软件模块之间的链接,当这种链接建立之后,模块之间就可以通过称之为“接口”的机制来进行通
6、信。COM标准增加了保障系统和组件完整的安全机制,扩展到分布式环境,实现了COM对象与远程计算机上的另一个对象之间直接进行交互。Activex是一套基于COM的可以使软件组件在网络环境中进行互操作而不管该组件是用何种语言创建的技术,作为Activex技术的重要内容,Activex控件是一种可编程、可重用的基于C+的对象。Activex控件通过属性、事件、方法等接口与应用程序进行交互。组件式GIS的基本思想是把GIS的各大功能模块划分为几个控件,每个控件完成不同的功能。各个GIS控件之间,以及22GIS控件与其它非GIS控件之间,可以方便地通过可视化的软件开发工具集成起来,形成最终的GIS应用。
7、控件如同一堆各式各样的积木,他们分别实现不同的功能(包括GIS和非GIS功能),根据需要把实现各种功能的“积木”搭建起来,就构成应用系统。1.通用可视化开发环境一VB60Visual Basic是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开Windows环境下的各类应用程序。它简单易学、效率高,且功能强大可以与Windows专业开发工具SDK相媲美。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,以用动态链接库(DLL)、对象的链接与嵌入(OLE)、开放式数据连接(ODBC
8、)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。随着版本的提高,Visual Basic的功能也越来越强。60版以后,Visual Basic推出了中文版,与之前版本相比,其功能有了很大提升。他的基本特点如下:(1)面向对象VB采用了面向对象的程序设计思想,它的基本思路是把复杂的程序设计问题分解为一个个能够完成独立功能的相对简单的对象集合,所谓“对象”就是一个可操作的实体,如窗体、窗体中的命令按钮、标签、文本框等,面向对象的编程就好像搭积木一样,程序员可根据程序和界面设计要求,直接在屏幕上“画”出窗口、菜单、按钮等区别类型的对象,并为每个对象设置属性。(
9、2)事件驱动在Windows环境下,程序是以事件驱动方式运行的,每个对象都能响应多个区别的事件,每个事件都能驱动一段代码事件过程,该代码决定了对象的功能,通常称这种机制为事件驱动,事件可由用户的操作触发,也可以由系统或应用程序触发,例如,单击一个命令按钮,就触发了按钮的Click(单击)事件,该事件中的代码就会被执行,若用户未进行任何操作(未触发事件),则程序就处于等待状态,整个应用程序就是由彼此独立的事件过程构成。(3)软件Software的集成式开发VB为编程提供了一个集成开发环境,在这个环境中,编程者可设计界面、编写代码、调试程序,直至把应用程序编译成可在Windows中运行的可执行文件
10、,并为它生成安装程序,VB的集成开发环境为编程者提供了很大的方便,(4)结构化的程序设计语言VB具有丰富的数据类型,是一种符合结构化程序设计思想的语言,而且简单易学。(5)强大的数据库访问功能VB利用数据Control控件可以访问多种数据库,VB 60提供的ADOControl控件,不但可以用最少的代码实现数据库操作和控制,也可以取代DataControi控件和RDOControl控件。(6)支持对象的链接和嵌入技术VB的核心是对对象的链接和嵌入(OLE)技术的支持,它是访问所有对象的一种思路方法,利用OLE技术,能够开发集声音、图像、动画、字处理、Web等对象于一体的程序。(7)多个应用程序
11、向导VB提供了多种向导,如应用程序向导、安装向导、数据对象向导和数据窗体向导,通过它们可以快速地创建区别类型、区别功能的应用程序。(8)支持动态交换、动态链接技术通过动态数据交换(DDE)的编程技术,VB开发的应用程序能和其他Windows应用程序的间建立数据通信,通过动态链接库技术,在VB程序中可方便地调用C语言或汇编语言编写的函数,也可调用Windows的应用程序接口(API)函数。(9)联机帮助功能在VB中,利用帮助菜单和Fl功能键,用户可随时方便地得到所需要的帮助信息,VB帮助窗口中显示了有关的举例代码,通过复制、粘贴操作可获取大量的举例代码,为用户的学习和使用提供方便。2. MapG
12、IS组件库的基本概念MapGIS提供完整的二次开发函数库。用户完全可以在MapGIS平台上开发面向各自领域的应用系统。3在VB中实现MapGIS组件二次开发的方法利用MapGIS组件开发平台进行GIS应用程序的开发分以下几个步骤进行:(1)选择应用系统的开发工具,如VB;(2)将所使用到的MapGIS组件引用到应用程序中;(3)调用MapGIS组件的属性和方法完成GIS基本功能:(4)开发应用系统专用的功能。4.如何在VisualBasic程序中使用MapGIS组件对象主要有以下步骤。(1)安装要使用MapGIS的组件,必须对其安装并在Windows注册表里注册。运行MapGIS二次开发包中的
13、Setupexe程序,可以自动安装组件并注册。(2)使用MapGIS对象。可以使用visual Basic编写使用MapGIS对象的程序。(3)嵌入MapGIS对象。对MapGIS对象编程的第一步是在项目中嵌入合适的类型库或头文件。为了使visual Basic能够访问MapGIS对象,应该在Visual Basic项目或模块中嵌入MapGIS对象类型库。 (4)初始化COM库。在程序能使用MapGIS对象之前,必须初始化COM库。MapGIS应用程序不必初始化COM,VisualBasic会自动初始化COM库。(5)建立MapGIS对象。MapGIS组件的核心是MapGIS对象。(6)声明和
14、分配对象变量。为了存放从另一个对象返回的MapGIS对象,必须声明合适的MapGIS对象变量。(7)使用属性。属性是存放在MapGIS对象中的数据项。可以获得几乎全部属性值,但只能设置(改变)一定的属性值。(8)调用方法。方法是使用MapGIS对象执行一个动作的函数。(9)使用集合。一个集合含有一组对象,这些对象有相同的类型。集合的名字是它含有的对象类型的名字的复数形式。(10)释放MapGIS对象。当程序完成使用它创建的MapGIS对象时,必须释放该对象。在释放对MapGIS对象的最后一次应用后,对象变量变成无效的了,不能再使用。要再次使用这个对象,必须得到对它的新引用。(11)解除COM库
15、。在程序退出之前,COM库必须被解除初始化。5.基本功能模块系统的基本功能包括数据输入输出、视图操作、图层管理等内容。(1)数据输入输出:是指参与评价的各种空间数据和属性数据导入系统,参与土地利用评价以及评价结果的输出,以及空间数据和属性数据的新建和保存。也包括数据层的显示和关闭。(2)视图操作:是指提供地图的复位、放大、缩小、漫游等基本操作以及查看图层属性信息等功能。(3)图层管理:主要完成对组成地图的各地理要素的管理,包括图层的新建、添加、保存以及隐藏和显示图层等功能。6.数据编辑模块数据编辑是对进入系统的数据进行修改和处理的功能,是将输入系统的数据进校验、检查、修改、重新编排、处理、净化
16、、组织成便于内部处理的格式的过程。任务主要有:(1)对数据进行校验检查,包括检查遗漏数据、多余数据和错误数据,进行增加、删除和修改操作;(2)把数据重新编排组织成便于内部处理的格式。在地理信息系统中,因处理对象为空间实体,故图形编辑是数据编辑的主要方式。通常在图形显示,人机交互环境下进行点、线段的增删和属性数据修改等操作,为下一步分析处理建立符合要求的数据基础。(3)对因子图层进行编辑处理,如裁剪图层,使各个因子具有一致的范围等,从而使之符合土地利用评价模型处理的需要。(4)添加图层的属性信息,最主要的是将评价因子图层的权重信息输入图层属性中,使图层属性包含因子比重值。从而保证评价模型的实现。