740 likes | 1.01k Views
GIS 设计与实现. 第 1 章 概 论 (2) 1.3 地理信息系统二次开发. 地理信息系统二次开发. Why 已有众多的 GIS 工具软件,但通常只具有一些 GIS 的通用功能,不能满足不同行业应用的需要 ; Which 应用型 GIS 开发 ; How 采用 GIS 的原理和方法,基于系统化思想指导下的工程化建设过程。根据不同应用型 GIS 的要求,其开发模式都应遵循软件工程的原则和要求进行。. 地理信息系统二次开发. 3.1 GIS 开发模式 GIS 开发是一项十分复杂的系统工程 ; 应用型 GIS 的种类繁多,涉及应用领域广泛,技术要求千差万别 ;
E N D
GIS设计与实现 第1章 概 论 (2) 1.3 地理信息系统二次开发
地理信息系统二次开发 • Why 已有众多的GIS工具软件,但通常只具有一些GIS的通用功能,不能满足不同行业应用的需要; • Which 应用型GIS开发; • How采用GIS的原理和方法,基于系统化思想指导下的工程化建设过程。根据不同应用型GIS的要求,其开发模式都应遵循软件工程的原则和要求进行。
地理信息系统二次开发 3.1 GIS开发模式 • GIS开发是一项十分复杂的系统工程; • 应用型GIS的种类繁多,涉及应用领域广泛,技术要求千差万别; • 对于功能单一、简单小型的应用型GIS系统可直接购买GIS商品化软件; • 对规模较大、功能复杂、需求不确定性程度比较高的系统,购买商品化软件很难满足要求,必须进行二次开发。
地理信息系统二次开发 ⒈ 自行开发模式 • 自行开发模式是指由用户依靠自己的力量独立完成系统的设计与开发。自行开发方式需求明确、开发费用低,易于维护,但对用户要求较高。自行开发模式不但要求用户有较强的系统分析、设计和编程能力,还要求具备一定的软件工程的组织管理能力。
地理信息系统二次开发 2. 委托开发模式 • 委托开发模式是指由用户委托GIS开发商按照用户的需求完成全部设计、开发任务,而用户只配备精通管理业务的人参与的开发方式。委托开发模式相对于自行开发模式来说,用户比较省事,但开发费用高,维护和扩展均要依赖对方。
地理信息系统二次开发 3. 联合开发模式 • 联合开发模式是指由用户中精通管理业务、计算机技术、GIS技术的开发人员与有丰富经验的专业开发人员共同完成系统的分析、设计、实施、评价、管理和维护工作的开发方式。联合开发模式折中了前两种开发方式的优点,但增加了系统开发工作中合作和协调的困难。
地理信息系统二次开发 3.2 GIS开发方式 早期的GIS开发和今天的GIS开发有很大的不同。 早期的GIS开发一般是在UNIX、MS-DOS操作系统的文字操作界面环境下进行的,目前GIS开发可以分为独立开发、宿主开发和集成开发三种方式。
地理信息系统二次开发 ⒈ 独立开发 • 独立开发是指不依赖于任何GIS工具软件,利用专业程序设计语言开发应用模型,直接访问GIS软件的内部数据结构。 • 从空间数据的采集、编辑到数据的处理分析及结果输出,所有的算法都由开发者独立设计,然后选用某种程序设计语言,如Visual C++、Visual Basic、Delphi、java、C++等,在一定的操作系统平台上编程实现。
地理信息系统二次开发 • 适用于:开发商品化的GIS软件平台; • 优点:无须依赖任何商业GIS工具软件,独立性强,降低了开发成本。用这种开发方式建立的系统,其各组成部分之间的联系最为紧密、综合程度和操作效率最高;
地理信息系统二次开发 • 缺点:对于大多数开发者来说,开发难度大、开发周期长、投资大,同时开发出来的系统的功能与稳定性往往比现有的成熟GIS系统的功能和稳定性差,很难与商业化GIS工具软件相比。 • 不适用于一般的GIS开发用户。
地理信息系统二次开发 2. 宿主开发 • 宿主开发指基于现有的成熟GIS平台上进行应用开发,完全借助于GIS工具软件提供的宏语言(Macro)和专用开发语言进行应用系统开发,以原GIS工具软件为开发平台,开发出针对不同应用对象的应用程序。
地理信息系统二次开发 • 随着GIS工具平台的不断完善,一些GIS软件提供了可供用户进行二次开发的宏语言和专用开发语言。宏语言编程过程如下:按照预先调试好的对某空间数据集合的处理模式,将在系统下键入的处理命令按照先后顺序写成命令序列并作为文件保存,执行时调入并执行该文件中的命令,就可完成对该空间数据集的程序化操作,以提高处理效率。
地理信息系统二次开发 • 专用开发语言与宏命令语言最大的不同,在于它比宏命令语言低级,即不具有宏命令语言“宏"的含义,从而它更支持对系统底层功能的调用,有利于用户进行深入编程。但过于低级的开发语言必然增加了用户学习、掌握的难度。
地理信息系统二次开发 • 目前市场上GIS工具软件大多提供了可供用户进行二次开发的语言,如ARC/INFO提供了AML语言、Arcview提供了Avenue语言,MapInfo的MapInfo Professional提供了MapBasic语言等。
地理信息系统二次开发 • AML是Aro/Info Workstation一个不可或缺的重要组成部分。AML宏语言发出命令,要求其他程序进行相应的操作。AML属于解释型高级宏语言,其语法结构简单,解释执行,不需编译,执行和开发效率高;此外,还提供可视化菜单、对话框编辑工具。
地理信息系统二次开发 • MapBasic是用户在MapInfo平台上迸行二次开发的专用开发语言。利用MapBasic编程,能够扩展MapInfo的功能,简化用户的重复操作,并能使MapInfo与其他应用软件集成。MapBasic是一种类Basic语言,它具有自己的语法规则,对于想要快速建立以地图空间分析为主要功能的企业用户来说,选用MapBasic来进行开发是一种最快也最简单的方式,因为MapBasic集成程度很高,并提供很多复杂的地图分析。
地理信息系统二次开发 • 优点:简单易行,开发周期短,系统的稳定性和可靠性高,许多功能可以直接从原有的平台软件中引用过来; • 缺点:移植性差;受开发平台的影响,不能脱离原有系统单独运行;受系统提供的开发语言的功能限制,二次开发的宏语言作为编程语言只能算是二流,功能一般较弱。不能与专业程序设计语言相比,难以开发复杂的应用模型,用它们开发出来的系统结构松散,系统显得有些臃肿,功能和效率也较差。
地理信息系统二次开发 3. 集成开发 • 集成开发是指利用专业的GIS工具软件,如Arc/Info、MapInfo Professional、ArcView等,实现GIS的基本功能,以通用软件开发工具尤其是可视化开发工具,如Visual C++、Visual Basic、Delphi、PowerBuilder等为开发平台,采用OLB/DDE或GIS控件两种方式,通过ADO与数据库系统连接,进行二者的集成开发。
地理信息系统二次开发 1)OLE/DDE方式 • 采用OLE Automation技术或利用DDE技术,用软件开发工具开发前台可执行应用程序,以OLE自动化方式或DDE方式启动GIS工具软件在后台执行,利用回调技术动态获取其返回信息,实现应用程序中的地理信息处理功能。
地理信息系统二次开发 2)GIS组件方式 • 组件(或称控件)是指那些具有某些特定功能,独立于应用程序,但能够容易地组装起来,以高效地创建应用程序的可重用软件“零件”。
地理信息系统二次开发 • 组件式GIS的基本思想是把GIS的各大功能模块划分为几个控件,每个控件完成不同的功能。各个GIS控件之间,以及GIS控件与其他非GIS控件之间,可以方便地通过可视化的软件开发工具集成起来,形成最终的GIS应用。 • 控件如同一堆各式各样的积木,它们分别实现不同的功能(包括GIS功能和非GIS功能),根据需要把实现各种功能的“积木”搭建起来,就构成应用系统。
地理信息系统二次开发 • 利用GIS工具软件生产厂家提供的建立在OCX技术基础上的GIS组件,在某种可视化编程工具如Visual C++、Visual Basic、Delphi、.NET上实现GIS的基本功能,直接将GIS功能嵌入其中,实现GIS的各种功能。由于GIS组件往往以ActiveX控件的方式提供,因此可以很简单地被通用的开发工具使用,在此基础上实现GIS应用系统的功能。这种建立在OCX技术基础上的GIS控件又称为组件式GIS。
地理信息系统二次开发 • GIS组件的代表作首推Mapobject和Mapx等,其中Mapobject由全球最大的GIS厂商ESRI(美国环境研究所)推出,Mapx由著名的桌面GIS厂商美国MapInfo公司推出。国内也涌现出一些优秀的组件,如中地公司的MapGIS组件和超图公司的GIS组件。
地理信息系统二次开发 • 结合GIS工具软件与当今可视化开发语言的集成二次开发方式就成为GIS应用开发的主流。 • 优点:既可以充分利用GIS工具软件对空间数据库的管理、分析功能,又可以利用其他可视化开发语言具有的高效、方便等编程优点,集二者之所长,不仅能大大提高应用系统的开发效率,而且使用可视化软件开发工具开发出来的应用程序具有更好的外观效果,更强大的数据库功能,且可靠性好、易于移植、便于维护。
地理信息系统二次开发 • 应用型地理信息系统的软件开发环境: 1) 中小型应用一般选择MapInfo+MapBasic+SQL Server; 2) 大型应用一般选择ArcGIS十Oracle9i+编程语言及MapGIS+Oracle9i+编程语言, 3) 对于仅用到电子地图功能(如出租车定位系统)的应用可选用组件GIS,常用组件有MapInfo的Mapx和ESRI的ArcObjcet等。
地理信息系统二次开发 3.3 GIS模型重用 1.源代码方式重用 • 在重用源代码形式的模型时,必须利用GIS系统的二次开发语言或其他编程语言,将已开发好的专业模型的源代码进行改写重用,使其从语言到数据结构与GIS系统完全兼容,成为GIS系统的整体的一部分。
地理信息系统二次开发 • 优点:非常多见,并且将一直存在,它可以保证GIS系统与模型在数据结构、数据处理等方面的一致性。 • 缺点:最低级的重用方式, 一是GIS开发者必须下很大工夫读懂模型的源代码,二是在改写重用过程中常常会出错。
地理信息系统二次开发 2. 函数库方式重用 • 对于以库函数的形式保存在函数库中的应用模型,GIS开发者可以通过调用库函数的方式进行模型重用。
地理信息系统二次开发 • 优点:GIS系统与应用模型能实现高度无缝的集成;函数库一般都有清晰的接口,GIS开发者不必费力去研究源代码,使用方便,而且函数库经过编译,不会发生因开发者错误地改动源代码而使模型运行结果不正确的情况。 • 缺点:库函数无法与GIS数据有效结合,因而不能用于复杂模型与GIS的集成;由于开发者不能对库函数进行修改,降低了重用的灵活性;函数库的可扩充性差;此外,静态函数的使用还在一定程度上受限于语言,必须依赖于其开发语言。
地理信息系统二次开发 3. 独立可执行程序方式重用 • GIS系统与应用分析模型均以可执行应用程序的方式独立存在,二者的内部、外部结构均不变,相互之间可以切换。二者之间的数据交换通过对共同的统一格式的中间数据文件(如ASCII码文件或通用数据库文件等)的操作实现,GIS系统进一步将中间数据转换为空间数据,以实现GIS本身的空间数据操作功能。
地理信息系统二次开发 • 优点:简便,所需编程工作极少; • 缺点:系统效率较低,且使用不很方便;界面往往不一致,视觉效果不好。
地理信息系统二次开发 4. 内嵌可执行程序方式重用 • 这种重用方式本质上与独立可执行程序方式一样,以GIS系统命令驱动应用模型程序,GIS系统与模型之间的集成通过对共同数据文件的读/写操作实现,GIS系统则进一步通过进行中间数据与空间数据的转换来实现空间数据的GIS操作功能。
地理信息系统二次开发 • 优点:对于开发者,这种重用方式符合软件工程学要求的模块化开发原则,便于开发工作的组织管理,并且系统的运行性能比独立可执行程序方式好;对于用户,这种方式开发出来的集成系统具有基本统一的界面环境,便于操作。
地理信息系统二次开发 • 缺点:开发人员必须理解模型运行的全部过程,并对复杂的模型要进行正确合理的结构分解,以实现模型与GIS系统本身之间的数据相互转换及模型对GIS功能的调用。因而,在分解原模型时可能产生错误,此外,如果需要同时集成多个模型,要进行模型的组合很困难。
地理信息系统二次开发 5. DDE或OLE方式重用 • DDE指动态数据交换,OLE指对象链接与嵌人,二者均用于Windows应用程序之间的数据传递,可以作为应用GIS开发中的一种可执行程序形式应用模型重用方式。 • 在进行DDE会话或采用OLE方式连接时,必须存在两个主体,一方为客户程序,另一方为服务程序,简单地说,就是要有一方为另一方提供数据服务或更复杂的服务。对于GIS与应用模型的集成来说,就是GIS为客户程序,应用模型为服务程序。
地理信息系统二次开发 优点:与内嵌可执行程序相似,系统能实现无缝 集成,而所需编程不多. 缺点:系统效率不高,且系统稳定性不是很好。此外,这种方式要求应用模型必须支持DDE或OLE协议,这是目前绝大多数已开发的各类模型做不到的。
地理信息系统二次开发 6. 模型库方式重用 • 模型库指在计算机中按一定组织结构形式存储的各个模型的集合体。模型库系统可以有效地生成、管理和使用模型,它可以支持两种粒度的模型(可执行文件与函数子程序),具有完整的模型管理功能,能够提供单元模型(指不需要调用其他模型的模型)和组合模型(指通过调用其他单元模型或组合模型来构成的模型),同时还支持模型的动态调用和静态链接,使系统具有良好的可扩充性。
地理信息系统二次开发 • 模型库系统尤其符合客户/服务器模式的系统的运行方式要求。在Client/Server模式的GIS系统中,模型从模型库中被动态地调入内存执行。尽管模型库研究随着决策支持系统的发展在近的年来取得了很大的进展,但是,在模型的操作方面,目前并没有形成完整的理论体系,特别是模型的自动生成、半自动生成方面离真正实用化尚有一段距离。
地理信息系统二次开发 7. 组件模型重用 • 组件模型指以组件形式存在的应用模型。 • 当前,由过去厂家提供全部系统或者有部分二次开发功能的软件,过渡到提供组件由用户自己再开发的方向上来,传统的GIS工具软件最终将走向组件化。模型的组件化也将相应成为应用模型开发的主要方式。在组件模型的基础上,还可以进一步制作可重用模型组件库,这将是软件重用技术今后的一个重要发展方向,也将为GIS与应用模型的集成提供一种新的技术手段。
地理信息系统二次开发 • 应用模型的重用必须根据模型的存在形式,分别采取不同的重用方式。尽管现有GIS工具软件不支持使用软件组件进行二次开发,但随着组件式地理信息系统的发展与流行,GIS应用系统开发者可以使用可视化编程工具,如Visual C++、Delphi等作为开发平台,利用GIS工具组件与模型组件,开发出高效无缝的应用系统,应用模型的组件化,将极大地促进GIS与应用模型的集成应用,组件模型符合GIS软件组件化这一革命性变化的潮流。因此,组件模型将是最有前途的模型存在形式,而模型组件化将是应用型GIS开发中最有效的模型重用手段。
地理信息系统应用 1.4 地理信息系统应用 4.1 地理信息系统应用特点 1.应用领域不断扩大 • 地理信息系统已在许多领域得到广泛应用,目前应用领域己发展到60多个。主要应用领域涉及地质、地理、测绘、石油、媒炭、冶金、土地、城建、建材|旅游、交通、铁路、水利、农业、林业、环保、教育、文化、军事等。愈来愈多的学科,如地理、工程学、森林学、城乡规划、计算机科学、测绘学、航测与遥感学、地图学等,将GIS作为其发展方向加以强调。
地理信息系统应用 2. GIS应用研究不断深入 • GIS早期应用强调制图和空间数据库管理,逐渐地,这些应用发展为强调制图现象间相互关系的模拟,大多数应用都包括了制图模拟,如地图再分类、叠加和简单缓冲区的建立等。新的应用集中体现在空间模拟上,即利用空间统计和先进的分析算子进行应用模型分析和模拟。
地理信息系统应用 3.GIS应用社会化 • GIS市场年增长率在35%以上,目前从事GIS的厂商己超过300家,其中主要厂家年销售量增长约在100%以上。由于重视对GIS人才的培养,GIS的用户数量每年以2~6倍的速度增长,呈现社会化应用趋向,成为人们科研、生产、生活、学习和工作中不可缺少的工具和手段。
地理信息系统应用 4. GIS应用全球化 • 继美国之后,日本、英国、德国、澳大利亚等国以及亚洲、非洲的许多国家相继宣布了自己在信息领域的发展规划和蓝图,地理信息系统技术的应用正席卷全球。国家性和区域性的GIS研究中心在美囝、加拿大、英国、澳大利亚等西方国家建立起来。在美国、西欧和日本等发达国家,已建立了国家级、洲际之间以及各种专题性的GIS,GIS应用国际化、全球化已成为了一种趋势。
地理信息系统应用 5. GIS应用环境网络化、集成化 • 在地理信息系统中,有很多基础数据,它们是社会共享资源,如基础地形库、人口资源库、经济数据库。因此,必须建立国家及省市地区级基础数据库。在发达国家,常由政府投资建立实用基础数据库,由应用部门投资建立专业数据库。用户可通过网络及时地获取正确的基础数据。在我国已建立了1:100万国家基础空间数据库,1∶25万地形数据库,显然网络化能提高这些数据的利用率,这是发展的必然趋势。 • 此外,由于各行各业中信息数量的日益增长以及信息种类及其表达的多样化,各种集成环境对地理信息系统的推广应用十分重要,如3S集成系统等。
地理信息系统应用 6. GIS应用模型多样化 • GIS在专业领域中的应用,需开发本专业模型,特别是专业性的地理信息系统,这种地理信息系统一般以一个到几个核心的应用分析模型(或模型群)作为系统的核心应用模型。可以简单使用或组合使用地理信息系统常规的应用分析方法或者模型——如邻域分析、缓冲区分析、最短路径分析、泰森多边形分析、地形分析、空间叠置分析等,但更多的是以这些常规的应用分析方法或模型为基础,结合本专业的新理论与新技术而建立的专业应用模型。随着专业的不断发展,GIS应用模型越来越多,既有定量模型,又有定性模型;既有结构化模型,又有非结构化模型。GIS在专业中的应用能否成功与模型开发的成败息息相关。
地理信息系统应用 4.2 地理信息系统应用领域 • 目前,以空间数据序为核心的地理信息系统的应用已经从解决道路、输电线路等基础设施的规划和管理,发展到更加复杂的领域,地理信息系统已经广泛应用于环境和资源管理、土地利用、城市规划、森林保护、人口调查、交通、地下管网、输油管道、商业网络等各个方面的管理与决策。
地理信息系统应用 1. GIS在交通领域中的应用 • 交通信息与地理空间信息息息相关,因此,交通领域必然是GIS的重点应用领域之—,交通地理信息系统由此应运而生。GIS-T(Geographical Information Systems for Transportation,交通地理 信息系统)是收集、存储、管理、综合分析和处理空间信息及交通信息的计算机系统,它把GIS和ITS(Intelligent Transportation Systems,智能交通系统)有机结合成一体,是GIS技术在交通领域的延伸,是GIS与多种交通信息分析和处理技术的集成。由于交通信息系统具有精度要求高、规则复杂、动态化、离散化等特点,原有的信息技术已经不能完全满足交通应用的需求,而借助于GIS的强大功能,可以适应交通信息化时代的要求。交通地理信息系统凭借其强大的交通信息服务和管理功能,必将促进交通规划、建设、管理以及智能交通的发展。
地理信息系统应用 2. GIS在市政工程中的应用 • GIS在市政工程建设方面可为政府和企业提供极为有力的管理、规划和决策工具,主要用于公共供应网络(电、气、水、废水)、电信网络、交通领域、区域和城市规划、市区设计、道路工程等。例如,贝鲁特正在利用GIS分析它的电力线路以减少损失、提高电压。GIS用来模拟能达到最优电力效益的设施布置措施。美国新墨西哥州也正在利用GIS来管理其公众服务设施布局、正常运转并维护长达25的英里的电力输送。丹麦能源部正在建立全国每幢建筑中能源用量的数据库。这种信息对于规划发电站和设计分布体系非常重要。