VC++开发GIS项目程序(地理信息系统(GIS))+论文
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
目 录
1 实现图形系统的文档和视图……………………………………1
1.1 组织矢量图形系统的图形元素类………………………………1
1.2 组织矢量图形系的文档…………………………………………3
1.2.1 组织面向对象的文档管理机制………………………………3
1.2.2 利用MFC摸板创建管理图形元素对象指针的对象…………3
1.2.3 实现矢量图形系统的文档……………………………………3 【买计算机毕业论文就到www.think58.com】
1.2.4 实现文档的管理功能…………………………………………3
内容来自think58 [来源:http://think58.com]
1.3 实现矢量图形系统的视图………………………………………5
1.3.1 建立坐标系……………………………………………………5
1.3.2 实现各类图形元素的绘制功能………………………………6
1.3.3 实现视图………………………………………………………6
1.4 各类图形元素几何属性的计算…………………………………7
2 鼠标交互绘图……………………………………………………7
2.1 用鼠标绘图要解决的主要问题…………………………………7
本文来自think58
2.1.1 捕获鼠标操作消息……………………………………………7
2.1.2 捕捉所有的鼠标输入…………………………………………7
2.1.3 在屏幕上拖动图形……………………………………………7
2.1.4 保存图形数据到文档…………………………………………7
2.1.5 将图形以实际的形态重画……………………………………7
2.2 交互绘制各类图形元素…………………………………………8
3 矢量图形系统的操作功能……………………………………9
copyright think58 [资料来源:http://think58.com]
3.1 增加图形操作菜单………………………………………………9
3.2 图形重画…………………………………………………………9
3.3 图形放大和摆动…………………………………………………11
3.4 重画上屏和重画首屏……………………………………………11
3.5 显示全图…………………………………………………………13
3.5.1 各类图形元素的边界矩形计算………………………………13
内容来自think58 [资料来源:http://think58.com]
3.5.2 实现显示全图功能……………………………………………13
3.6 提高矢量图形系统重画速度的基本方法………………………14
3.6.1 提高图形重画速度的方法……………………………………14
3.6.2 提高图形元素的绘制速度……………………………………16
4 图形的选中、移动、旋转、删除……………………………16
4.1 鼠标点选图形元素………………………………………………16
4.2 图形移动…………………………………………………………20
think58好,好think58 [资料来源:www.THINK58.com]
4.3 图形旋转…………………………………………………………21
4.3.1 点与点的旋转操作……………………………………………21
4.3.2 各类图形元素的旋转操作……………………………………22
4.3.3 实现旋转操作功能……………………………………………22
4.4 图形元素的删除…………………………………………………22
5 数据库应用程序开发技术……………………………………24
5.1 创建基于ODBC的数据库应用程序……………………………24
[资料来源:THINK58.com]
5.2 CRecordSet类功能分析………………………………………24
5.3 CRecordView视图类分析………………………………………26
6 实现数据库浏览功能…………………………………………27
6.1 创建一个数据库浏览视图………………………………………27
6.2 创建一个CRecordSet派生类对象……………………………28
6.3 实现数据库浏览试图……………………………………………28
7 实现数据库编辑功能…………………………………………28
[资料来源:http://THINK58.com]
7.1 建立并初始化存储记录指针的变量……………………………28
7.2 建立数据库编辑功能操作菜单…………………………………29
7.3 建立编辑数据记录的对话框类…………………………………29
7.4 增加和修改数据记录……………………………………………29
7.5 删除记录…………………………………………………………29
8 通用数据库过滤功能…………………………………………30
8.1 过滤操作的实现方式……………………………………………30 think58.com
[来源:http://think58.com]
8.2 创建组织过滤条件的对话框类…………………………………30
8.3 组织过滤条件编辑器的各种功能………………………………30
8.4 在数据库浏览视图中实现过滤功能……………………………31
8.5 增加过滤条件编辑器的功能……………………………………31
参考文献………………………………………………………………33 think58好,好think58
think58 [资料来源:http://THINK58.com]
本文来自think58
think58好,好think58
本文来自think58
[资料来源:http://THINK58.com]
摘 要 think58好,好think58
近年来,地理信息系统(GIS)是储存和处理与地理空间分布有关信息的集合。在各行各业得到越来越广泛的应用,GIS以其混合数据结构和独特的地理空间分析功能独树一帜 在税务系统中也开始广泛的应用,不仅仅表现为提高管理的效率,而且增加了管理的功能。通过对组件式GIS技术的分析,还比较了WebGIS和VC++等技术,我们决定选用VC++基于进行GIS的开发企业分布地理信息系统。 本系统借助计算机完成企业的分布的电子地图,首先注册才能获取应用的权限,实现了鹰眼功能,一个地区地图的放大 缩小 漫游,箭头 编号标柱 点选 框选 圆选 选择符号 图层控制 按企业编号,企业名字查找 及企业的添加,删除等功能,当然后几项功能只有管理员才可以有使用权限。当选择选择方式进行选择之后,可以显示出被选中企业的名字,然后你可以点击企业的名字在地图上就会把这个企业的位置显放大显示在中心位置,况且不断的闪烁,还可以显示企业的详细信息 think58.com
关键词: VC++; 地理信息系统; 电子地图
1 实现图形系统的文档和视图
1.1 组织矢量图形系统的图形元素类
城市的信息化为城市GIS发展带来了机遇。实际上,城市信息化表现为政府管理与决策的信息化(数字政府),企业管理、决策与服务的信息化(数字企业),市民生活的信息化(数字城市生活),即“数字城市”。由此可见,城市GIS是“数字城市”最核心的部分,可以分为政府GIS、企业GIS和社会GIS。“数字城市”的发展,要求政府、企业和社会GIS通过数据通信网络将政府、企业和社会联成一个整体,实现资源的共享。
历史给了我们中国人特殊的超越他人的机遇。美国人、加拿大人、西欧人在通讯基础设施,政府、企业信息系统建设,信息系统互联互通,以及网络社会、网络社区四个阶段循序渐进的发展中占尽先机。但是当时的3维GIS技术、VR技术、4D数据融合集成技术、GIS三维表现技术都没有像今天这样成熟和廉价。访遍美国、西欧、加拿大、澳洲的城市政府网站,基于4D数据、三维表现、借助虚拟现实技术的凤毛麟角。
时间和市场为我们创造了超越的重大历史机会。这个机会就是数字城市中三维和VR技术的开发和应用。抓住机遇,我国的数字城市将大放异彩。我们认为中国的数字城市特色应该定位在:建设具有4D数据的城市基础地理信息公共平台;建设以3维和VR技术为主的城市规划、建设和管理业务专业应用系统。集中抢占数字城市“43VR”的技术应用战略制高点,形成中国数字城市“43VR”的特色,开拓中国数字城市独特的市场空间[10]。 think58.com
[来源:http://www.think58.com]
面向对象的程序设计,是目前程序设计的主流方法,在本设计中,将利用面向对象的程序设计和C++类的组织方法,组织建立一个基本矢量图形的图形元素类。组织实现的矢量图形系统,能够处理点类、线类、面类、网络点等类别的图形元素,其中点类图形元素有包括直线,圆,圆弧,子图,标注文本等图形元素,针对每类图形元素组织建立起对其进行管理的C++类,并把每个图形元素作为一个独立的对象来管理。
1.1.1 图形元素基类的组织
对各类图形元素进行分析,可以发现各类图形元素具有一些相同的属性和操作功能,如图形元素的颜色、线型线宽所在层等属性和得到一个图形元素是否做了删除标志等操作。
把这些图形元素中共性的东西(属性和操作),组织存放在一个图形元素基类(CDraw)中,具体的图形元素由这个基类来派生。
1.1.2 点类图形元素组织[5]
对于点类图形元素,其基本特性是各个图形相互独立,且每个图形元素具有有限个固定的特征点。
直线的基类是CDraw.,在直线类的构造函数中,共有包括11个参数,并利用前7个参数调用基类CDraw的构造函数,对基类的成员变量进行初始化,而在本身的构造函数中对直线类CLine自身的四个参数(直线的起点和终点)进行了初始化。 think58
[来源:http://think58.com]
对圆类的创建方法与直线类CLine 类似,圆除了具有图形元素的基本特征外,还有自身的几何特性,可以用圆心和半径作为特征参数表示圆的几何特性。
圆是圆弧的一个特例,当圆弧的弧度等于2时就是圆。所以可以从一个圆类派生得到一个圆弧类。
矢量图形中可以有大量的标注文本,标注文本除了具有图形元素的基本特性外,还具有位置、字体及标注内容等自身的信息。CText类也有两个构造函数,第二个构造参数有多个参数,并利用多个参数对类的成员变量进行初始化。在构造函数中,调用了基类CDraw的构造函数对基类CDraw的成员变量进行初始化。
子图是各类图形元素的集合体,是由多个图形元素组成的整体。为了在图形中插入子图,必须首先建立起管理子图所包含的图形元素的类,形成一个子图定义体,将选定的子图块以一定的横纵比例插入到图形中指定的位置,就形成了一个子图块。
1.1.3 线类图形元素组织
线类图形元素包括很多种,如连续直线、混合线、树状线等,在本设计中,以最简单的连续直线为例进行讨论,对于其他类型线的实现方法,可根据连续直线的实现方法来开发。
连续直线除了具有图形元素基类所具有的属性外,从图形的几何特征上,连续直线是由很多顶点组成的,而且顶点数目是不确定的。一条连续直线可能只有两个顶点,也可能有几千个顶点。所以,需要定义一个结构来存储连续直线的一个顶点坐标。 copyright think58
[资料来源:http://THINK58.com]
1.1.4 面类图形元素的组织[10]
面类图形元素一般是由闭合线围成的区域。根据围成面的边界不同,有不同形式的面,如圆形区域椭圆形区域复合线区域多边形区域等。最常用的面是多边形区域,其边界由一条连续直线组成。因为另外各种类型面的边界一般都可以用连续直线来近似描述,所以,本设计只讨论多边形区域的实现方法。
在描述多边形区域时,最主要的是要描述边界顶点坐标。描述面的边界顶点坐标时,有不同的描述方法,一种方法是将边界由几段连续直线来描述。
另外一种描述方法是直接存储区域的边界顶点坐标,即把区域的整个边界作为一条连续直线来存储。这种方法的缺点是造成坐标的重复存储;优点是具有较强的独立性,不用考虑组成区域的连续直线段。
在本设计中,采用直接存储边界坐标的方式。用这种方式组织多边形区域时,组织方式与连续直线类似。所以,可以由连续直线类CPline派生出一个CPlineRgn类,来对多边形区域进行管理。
1.1.5 网络类图形元素的组织
网络分析是GIS的一项非常重要的基本功能,最佳路径分析、最佳游历路径分析、连通分析、资源分配等都需要有网络类图形元素对网络进行描述、显示和分析。为了能够对网络进行描述和处理,在系统中增加一类图形元素来描述有方向、无转角的网络图。这类图形元素称为网络点。
[版权所有:http://think58.com]
1.1.6 图形参数类
在矢量图形系统中,图形参数是集中存储的。在图形元素基类中成员变量m_ColorPen,m_ColorBrush等存储的是颜色列表的序列号,m_Layer中存储的也是在图层列表中的序列号。
1.2 组织矢量图形系统的文档
1.2.1 组织面向对象的文档管理机制
管理矢量图形系统图形数据的方法即文档管理机制。在本设计的开发中,采用一套完全面向对象的文档组织机制。这种机制就是通过图形元素类创建很多图形元素对象,每个图形元素对象作为一个整体来组织存储空间的分配、存取等各种管理功能。然后通过建立一种存储机制,来管理指向所有图形元素对象的指针,达到管理所有图形元素对象的目的。这种文档管理机制具有组织简单结构化和移植性好,以及比较容易利用VC++程序设计语言的开发功能等优点。缺点是需要较大的内存空间。
上一篇:软件项目开发管理系统VC
下一篇:科研项目网上申报管理系统