论文部分内容阅读
摘要:简要介绍小型GIS工程的建设实例,包括基于MapObjects组件的二次开发及GIS系统的功能设计。
关键词:开发;功能设计;GIS系统
1 GIS系统的开发
GIS系统的开发模式有独立开发模式、宿主型开发模式、GIS组件开发模式。组件式软件技术已经成为当今软件技术的潮流之一,基本思想是把GIS的各大功能模块划分为几个控件,每个控件完成不同的功能。各个GIS控件之间,以及GIS控件与其它非GIS控件之间,可以方便地通过可视化的软件开发工具集成起来,形成最终的GIS应用。正是基于上述优势,本文将介绍GIS应用系统的组件开发模式,即基于Visual C++这一软件开发工具为开发平台,利用MapObjects组件(GIS功能组件,具备GIS的基本功能),进行二次开发,实现GIS功能。
1.1 开发语言简介
Visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。由于Visual C++、NET(Visual C++7.0)的应用有很大的局限性,只适用于Windows 2000、WindowsXP和WindowsNT4.0。因而实际中,程序员更多的是以Visual C++6.0为平台。
Visual C++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。
1.2 MapObjects介绍
MapObiects是ESRI公司提供的一组供应用开发人员使用的制图与GIS功能组件,它由一个OLE控件和一系列可编程OLE对象组成。利用MapObjects,开发人员可以在应用程序中添加制图和GIS功能。他不是为最终用户而是专门为开发人员提供的。
MapObjects是一个OLE控件,它可以用于大量开发框架中,包括流行的像VB、VC等之类的程序设计环境,因此开发人员可以在自己熟悉的开发环境中利用MapObjects开发GIS应用。
控件如同一堆各式各样的积木,他们分别实现不同的功能(包括GIS和非GIS功能),根据需要把实现各种功能的“积木”搭建起来,就构成应用系统。利用MapObjeats开发的GIS应用的基本功能有地图的输入、地图显示、地图管理、查询、空间分析、专题图制作、地图输出等。
2 小型GIS系统的功能设计
地理信息系统作为空间信息的处理、管理和分析系统,其功能包括数据采集、存储与管理、处理与分析、决策的全部过程。笔者将结合开发小型GIS系统的实例,详细阐述GIS系统的一些基本功能,包括基本的地图输入、管理、显示、输出功能,还包括与实际问题相关的空间分析与查询功能。现对常见功能详细描述如下:
2.1 地图的输入与管理
(1)添加矢量图层、栅格图层。
(2)图层之间的压盖关系可以进行调整。
(3)图层的显示状态可以进行控制。当我们要观察地图的某个图层时,其它图层的显示可能对观察不利,这时可以通过设置图层的可见性,使其它图层不显示出来。当然,可以再次点击可见性设置按钮,让隐藏的图层重新显示出来。
(4)图层删除。
2.2 地图显示
缩放、漫游、全图是GIS系统必备的基本功能之一,用户可以通过有限的屏幕窗口去认知无限的地理空间。缩放包括拉框放大、点放大、缩小。拉框放大,可以把用户感兴趣的区域在整个屏幕上显示,点放大是按一定得比例系数放大的,如系统设置为0.5,意味着显示范围为当前显示范围的0.5倍。缩小是也按一定的比例系数缩小的,与放大类似。漫游功能支持用户随意拖动地图,查看自己感兴趣的地方。全图可在屏幕上显示整个地图范围。
2.3 空间分析与查询
(1)实时获取当前鼠标所在位置的地图坐标。或通过鼠标点取地图上某点获取它的坐标值。
(2)量测鼠标画出的线段的长度,或多边形的面积,便于用户进行空间分析。除此之外,线目标长度的查询,可以获取图层中线状目标的长度,如获取某段公路的长度,这在实际中很有用处的。
(3)点查询。首先,选择相应的图层作为活动图层。然后,用鼠标点取查询的对象。这时候,目标会自动闪烁,同时我们能获得对象的属性信息表。
(4)矩形查询、多边形查询、圆查询。查询矩形框(多边形、圆)内的目标(包括与边框相交的目标),被选中的对象将一一闪烁,并将查询结果也用属性表列举出来。
(5)属性查询。首先要选择当前的活动图层,然后组合查询语句,如选择相应的查询字段、操作符(大于、小于、不等于、等于),输入相应的查询值。最终的查询结果,将以属性表的形式显示。
2.4 制图与输出
(1)在地图上添加点、线、面,并且可以对添加的对象进行保存。
(2)专题图制作。包括选择制作专题图的字段(单个字段或多字段的组合),选择专题图的表现形式,如;点状法、柱状图、饼状图。
(3)地图输出。如将当前的地图保存为bmp格式的栅格图,并且输出。
2.5 鹰眼功能
鹰眼地图的功能能使用户很清楚地知道当前屏幕的地图显示范围在全图中的位置。我们也可以任意拖动鹰眼框的位置,同时可以通过鼠标点击鹰眼地图的某个位置,获取新的地图显示范围。当进行放大、缩小、漫游、图层添加、图层删除等操作时,鹰眼地图也会响应这些操作,做出相应的改变。
系统运行的界面图如图1所示。
3 结语
目前,GIS已经被成功应用于商业、国防、电信、教育、政府、卫生、工程、环境、资源、交通等行业,极大地促进了社会经济信息化发展的进程。可以预见在不久的将来,人们的日常生活都离不开GIS。
关键词:开发;功能设计;GIS系统
1 GIS系统的开发
GIS系统的开发模式有独立开发模式、宿主型开发模式、GIS组件开发模式。组件式软件技术已经成为当今软件技术的潮流之一,基本思想是把GIS的各大功能模块划分为几个控件,每个控件完成不同的功能。各个GIS控件之间,以及GIS控件与其它非GIS控件之间,可以方便地通过可视化的软件开发工具集成起来,形成最终的GIS应用。正是基于上述优势,本文将介绍GIS应用系统的组件开发模式,即基于Visual C++这一软件开发工具为开发平台,利用MapObjects组件(GIS功能组件,具备GIS的基本功能),进行二次开发,实现GIS功能。
1.1 开发语言简介
Visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。由于Visual C++、NET(Visual C++7.0)的应用有很大的局限性,只适用于Windows 2000、WindowsXP和WindowsNT4.0。因而实际中,程序员更多的是以Visual C++6.0为平台。
Visual C++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。
1.2 MapObjects介绍
MapObiects是ESRI公司提供的一组供应用开发人员使用的制图与GIS功能组件,它由一个OLE控件和一系列可编程OLE对象组成。利用MapObjects,开发人员可以在应用程序中添加制图和GIS功能。他不是为最终用户而是专门为开发人员提供的。
MapObjects是一个OLE控件,它可以用于大量开发框架中,包括流行的像VB、VC等之类的程序设计环境,因此开发人员可以在自己熟悉的开发环境中利用MapObjects开发GIS应用。
控件如同一堆各式各样的积木,他们分别实现不同的功能(包括GIS和非GIS功能),根据需要把实现各种功能的“积木”搭建起来,就构成应用系统。利用MapObjeats开发的GIS应用的基本功能有地图的输入、地图显示、地图管理、查询、空间分析、专题图制作、地图输出等。
2 小型GIS系统的功能设计
地理信息系统作为空间信息的处理、管理和分析系统,其功能包括数据采集、存储与管理、处理与分析、决策的全部过程。笔者将结合开发小型GIS系统的实例,详细阐述GIS系统的一些基本功能,包括基本的地图输入、管理、显示、输出功能,还包括与实际问题相关的空间分析与查询功能。现对常见功能详细描述如下:
2.1 地图的输入与管理
(1)添加矢量图层、栅格图层。
(2)图层之间的压盖关系可以进行调整。
(3)图层的显示状态可以进行控制。当我们要观察地图的某个图层时,其它图层的显示可能对观察不利,这时可以通过设置图层的可见性,使其它图层不显示出来。当然,可以再次点击可见性设置按钮,让隐藏的图层重新显示出来。
(4)图层删除。
2.2 地图显示
缩放、漫游、全图是GIS系统必备的基本功能之一,用户可以通过有限的屏幕窗口去认知无限的地理空间。缩放包括拉框放大、点放大、缩小。拉框放大,可以把用户感兴趣的区域在整个屏幕上显示,点放大是按一定得比例系数放大的,如系统设置为0.5,意味着显示范围为当前显示范围的0.5倍。缩小是也按一定的比例系数缩小的,与放大类似。漫游功能支持用户随意拖动地图,查看自己感兴趣的地方。全图可在屏幕上显示整个地图范围。
2.3 空间分析与查询
(1)实时获取当前鼠标所在位置的地图坐标。或通过鼠标点取地图上某点获取它的坐标值。
(2)量测鼠标画出的线段的长度,或多边形的面积,便于用户进行空间分析。除此之外,线目标长度的查询,可以获取图层中线状目标的长度,如获取某段公路的长度,这在实际中很有用处的。
(3)点查询。首先,选择相应的图层作为活动图层。然后,用鼠标点取查询的对象。这时候,目标会自动闪烁,同时我们能获得对象的属性信息表。
(4)矩形查询、多边形查询、圆查询。查询矩形框(多边形、圆)内的目标(包括与边框相交的目标),被选中的对象将一一闪烁,并将查询结果也用属性表列举出来。
(5)属性查询。首先要选择当前的活动图层,然后组合查询语句,如选择相应的查询字段、操作符(大于、小于、不等于、等于),输入相应的查询值。最终的查询结果,将以属性表的形式显示。
2.4 制图与输出
(1)在地图上添加点、线、面,并且可以对添加的对象进行保存。
(2)专题图制作。包括选择制作专题图的字段(单个字段或多字段的组合),选择专题图的表现形式,如;点状法、柱状图、饼状图。
(3)地图输出。如将当前的地图保存为bmp格式的栅格图,并且输出。
2.5 鹰眼功能
鹰眼地图的功能能使用户很清楚地知道当前屏幕的地图显示范围在全图中的位置。我们也可以任意拖动鹰眼框的位置,同时可以通过鼠标点击鹰眼地图的某个位置,获取新的地图显示范围。当进行放大、缩小、漫游、图层添加、图层删除等操作时,鹰眼地图也会响应这些操作,做出相应的改变。
系统运行的界面图如图1所示。
3 结语
目前,GIS已经被成功应用于商业、国防、电信、教育、政府、卫生、工程、环境、资源、交通等行业,极大地促进了社会经济信息化发展的进程。可以预见在不久的将来,人们的日常生活都离不开GIS。