1、概括
MapWinGIS主要有两部分组成:MapWindow GIS Desktop 和 MapWinGIS 组件库。(下图为MapWindow GIS 软件体系结构图):
2、分析
2.1、MapWinGIS组件库它是独立与MapWindos GIS桌面应用程序和开发平台的软件组件集,它的开发环境是VS.net2003,他是类似Argos 的ArcObject(AO)组件集,我们可以称它为“MWO”。
2.2、MapWindow GIS DesktopMapWindow这个桌面应用程序是基于MapWinGIS 核心组件库(MapWinGIS.ocx)的应用程序,它完成了用户常用的一些GIS基本空间数据浏览功能(如图1)以及一些扩展功能,这些扩展功能主要是通过MapWindow插件来实现的。
MapWindow基本功能:主要包括空间数据浏览:选择、放大、缩小、漫游、满屏显示、属性表编辑器、距离量算等等。
图1 MapWindow用户界面
MapWindow插件:用户可以在MapWindow应用程序中扩展功能,MapWindow应用程序中包括了很多插件来扩展MapWindow的功能,例如:
GIS Tools:三部分组成,Raster、Vector、Image,主要包括栅格数据、矢量数据以及Image数据的处理,例如:ShapeFile的投影分配、重投影、矢量数据中多边形面积计算和多边形切割等。
ShapeFile Editor:主要功能包括:创建一个新的ShapeFile、数据编辑(添加、删除、修改元素等)。
Grid Wizard:导入和转出各种不同格式的格网数据。
Feature Identifier and Labeler :标示元素和添加标记。
MapWindow GIS中还提供了很多功能扩展插件,它们都在插件编辑器的插件列表中(如下图)。
图2 插件编辑器
2.3、MapWindow GIS扩展模块用户自制插件:用可以在VB.net、VC++.net中开发基于MapWinGIS组件库的自制插件,然后通过插件编辑器添加到MapWindow GIS桌面应用程序中。
MapWindow GIS 脚本编辑:在这个里面用户可以使用的语言有:VB.net和C#。通过编译输出可以为脚本和插件。
图3 脚本编辑器
2.4、用户自制应用程序因为MapWinGIS提供了一个GIS核心组件库“MapWinGIS.ocx”,用户可以开发基于该组件库的应用程序,在该组件库上进行二次开发,按照自己的需求开发自己的应用程序。该组件库可以被添加到VB.net、VC,甚至所有支持ActiveX Control的开发语言。下图是一个基于该核心组件库的VB.net应用程序示例:
注意:
参考文献:
1.MapWindow官方网站:http://www.mapwindow.org/
2.MapWindowOverview.pdf
3 Quick_Guide_to_MapWindow_GIS.pdf
4.UsingMapWinGIS.pdf
本文概述了开源GIS系统MapWinGIS的桌面应用程序(Desktop)MapWindow的系统结构,结合MapWindow 桌面系统、源代码以及帮助文档分析该软件的系统结构、框架。