用VS++开发GIS系统,实现难度是很大的。一个最基本的GIS系统,需要包括如下组成部分:管理空间坐标数据的矢量图形系统,管理性质数据的数据库管理系统,以及实现矢量图形与数据库管理系统的是双向连接系统。一些GIS系统专业开发工具,如MapInfo等,也是用C++通过如上的思路,在矢量图形系统的基础上开发完成的。
矢量图形系统是GIS系统最重要的组成部分,也是用VC++开发GIS系统的重点所在。应用于不同领域的GIS系统,起需要的矢量图形系统的功能是有差别的。建立一个城市信息管理GIS系统时,需要矢量图形系统有丰富的图形元素、丰富的线型、巨大的存储容量、完善的输入和输出功能、;而某些管理型GIS系统所需要的矢量图形系统,可能只需要具有简单的二维普通图形元素的功能。
一个基本的矢量图形系统一般需要如下的功能:
(1)相对完善的图形元素。应具备处理点、直线、圆、连续直线、多边形区域等图形元素的能力,并具有处理图例(即图形块)能力。具有基本徒刑元素和图例后的矢量图形系统,在很大程度上能够满足普通的管理型GIS系统的矢量图形要求。提供矢量显示图像的功能在很大程度上能够改善矢量图形界面的质量。
(2)相对完善的图形操作功能。应具备图形的缩放、移动等各种操作功能。
(3)相对完善的图形输入和输出功能。应具备鼠标交互绘制功能,系统应具备从打印或绘制设备输出图形的能力。
(4)具有颜色、线性的设置功能。
(5)具有较强的可恢复性。
本次程序设计是用VC++实现的应用于GIS的一个二维矢量图形绘制系统,使用VC++可以迅速开发出满足用户要求的实用系统,并且在灵活性、可靠性两个方面都具有很大的优点。使用VC++开发易于扩展成各种系统。VC++实现产生的应用程序使用了标准化的结构;产生的应用程序短而运行速度快。VC++工具降低了编码的复杂性,同时本身创建时就形成了部分代码,所以具备很高的实用性;而MFC库应用程序框架的功能非常丰富。