当前位置:首页 > 天文地球
Visual C++开发GIS系统 开发实例剖析

Visual C++开发GIS系统 开发实例剖析PDF格式文档图书下载

天文地球

  • 购买点数:17
  • 作 者:陈建春编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2000
  • ISBN:750535955X
  • 标注页数:579 页
  • PDF页数:597 页
图书介绍:本书介绍和分析了MFC程序的框架结构和各种MFC辅助工具的使用方法,实例剖析了MFC中与图形和数据库应用程序设计有关的类。介绍了GIS系统的开发方法和思路,结合具体代码开发实现了矢量图形系统、数据库管理系统、矢量图形系统和数据库管理系统之间的连接、信息查询功能、空间信息统计和分析功能等。

查看更多关于Visual C++开发GIS系统 开发实例剖析的内容

图书介绍

第1章 VC++开发GIS系统的思路 1

1.1 GIS系统简介 1

1.1.1 GIS系统的应用领域和范围 1

1.1.2 GIS系统与其他系统的结合 1

1.1.3 GIS系统的专业开发工具 2

1.1.4 GIS系统专业开发工具的优缺点 3

1.1.5 VC++开发GIS系统的优缺点及应用前景 4

1.1.6 选用GIS系统的开发方法 5

1.2 VC++开发GIS系统的思路 5

1.2.1 开发相对完整的矢量图形系统 5

1.2.2 开发数据库管理系统 6

1.2.3 建立矢量图形系统与数据库管理系统的连接 7

1.2.4 开发各种查询、空间信息统计和分析功能 7

1.2.5 开发多用户GIS系统 7

第一篇 VC++程序设计技术要点 11

第2章 MFC应用程序设计必须或辅助使用的几个开发工具 11

2.1 使用MFC AppWizard 12

2.1.1 MFC AppWizard的启动 12

2.1.2 利用MFC AppWizard产生MFC应用程序的步骤 14

2.2 使用classview 18

2.2.1 启动ClassView 18

2.2.2 编辑定位 18

2.2.3 增加类 19

2.2.4 增加类的成员 22

2.3 使用ResourceView 23

2.3.1 ResourceView的调用 24

2.3.2 ResourceView工作分析 24

2.4 使用FileView 27

2.4.1 打开一个程序项目 28

2.4.2 FileView相关的操作功能 28

2.5 使用ClassWizard 30

2.5.1 Windows消息 30

2.5.2 消息处理函数 31

2.5.3 ClassWizard的作用的启动 33

2.5.4 ClassWizard管理消息处理函数 34

2.5.5 ClassWizard管理重载虚函数 38

2.5.6 ClassWizard管理映射变量 40

2.5.7 管理Automation和ActiveX事件 44

2.5.8 重新构造开发项目的ClassWizard工作信息 44

2.6 使用DataView 45

2.7 管理多个程序项目 45

2.8 使用各设计工具进行编程的几点建议 47

第3章 MFC应用程序框架剖析 49

3.1 MFC程序基本框架类和文件组成 49

3.1.1 基本程序框架类 49

3.1.2 应用程序主要源文件组成 50

3.2 MFC应用程序中各个框架类的作用 51

3.3 MFC应用程序的执行步骤分析 52

3.4 MFC应用程序设计结构体系剖析 55

3.4.1 标准菜单的执行分析 55

3.4.2 修改标准菜单执行功能 57

3.4.3 MFC应用程序多态性的实现 58

3.4.4 MFC应用程序中各个框架类对象的相互调用关系 59

第二篇 基本矢量图形系统 65

第4章 与图形操作有关的MFC类及操作 65

4.1 绘图类 65

4.1.1 绘图类简介 65

4.1.2 几个绘图类的主要差别 66

4.1.3 绘图类的使用方法 67

4.2 绘图设备类 68

4.2.1 CGdiObject类 68

4.2.2 CPen类 68

4.2.3 CBrush类 70

4.2.4 CFont类 73

4.2.5 CRgn类 76

4.2.6 CPalette和CBitmap类 81

4.3 坐标映像方式 82

4.3.1 Windows映像方式及其设置方法 82

4.3.2 逻辑坐标和设备坐标的转换 83

4.4 窗口和视口 84

4.4.1 窗口和视口的概念 84

4.4.2 窗口和视口有关的操作函数 84

4.4.3 窗口逻辑坐标与视口设备坐标的转换 85

4.5 其他绘图类操作函数 88

4.5.1 选用绘图设备对象 88

4.5.2 主要绘图属性设置函数 89

第5章 实现基本矢量图形系统的文档和视图 92

5.1 组织矢量图形系统的图形元素类 92

5.1.1 图形元素基类的组织 92

5.1.2 直线类组织 93

5.1.3 连续直线或封闭多边形类组织 94

5.1.4 圆类组织 95

5.1.5 圆弧类组织 96

5.1.6 标注文本类 97

5.1.7 图形参数类 97

5.2 组织矢量图形系统的文档 99

5.2.1 组织面向对象的文档存储管理机制 99

5.2.2 利用MFC模板定义管理图形元素对象指针的对象 100

5.2.3 实现矢量图形系统的文档 100

5.2.4 实现文档的管理功能 101

5.3 实现矢量图形系统的视图 107

5.3.1 建立坐标系 107

5.3.2 实现各图形元素类的绘制函数 112

5.3.3 视图类的OnDraw函数 121

5.3.4 实现视图 122

第6章 鼠标交互绘图 124

6.1 用鼠标绘图要解决的主要问题 124

6.1.1 捕捉鼠标操作消息 124

6.1.2 捕捉所有的鼠标输入 126

6.1.3 在屏幕上拖动图形 126

6.1.4 保存图形数据到文档 126

6.1.5 将图形以实际的形态重画 126

6.2 加入一个绘图菜单 127

6.2.1 增加菜单资源 127

6.2.2 增加菜单的消息处理函数 128

6.3 交互绘制各种图形元素 130

6.3.1 获得图形元素的唯一识别号 130

6.3.2 绘制直线 132

6.3.3 绘制连续直线和多边形区域 135

6.3.4 绘制圆和圆形区域 138

6.3.5 绘制圆弧 141

6.4 交互绘制标注文本 148

6.4.1 对话框简介 148

6.4.2 交互绘制标注文本的过程 149

6.4.3 创建对话框资源 149

6.4.4 实现文本标注对话框类 150

6.4.5 实现标注文本交互绘制功能 154

第7章 矢量图形系统的操作功能 158

7.1 增加图形操作菜单 158

7.1.1 增加菜单资源 158

7.1.2 增加消息处理函数 159

7.2 图形重画 160

7.2.1 全屏重画 160

7.2.2 局部重画 161

7.3 图形放大和移动 162

7.3.1 图形放大和移动 162

7.3.2 图形放大和移动功能的实现 163

7.4 重画上屏和重画首屏 167

7.4.1 记录屏幕状态 167

7.4.2 实现重画上屏和重画首屏功能 170

7.5 显示全图 171

7.5.1 各类图形元素的边界矩形计算 171

7.5.2 实现显示全图功能 176

7.6 提高矢量图形系统重画速度的基本方法 178

7.6.1 提高图形重画速度的方法 178

7.6.2 提高图形重画速度的实现方法 179

7.6.3 加快图形元素的绘制速度 180

7.7 实现滚动视图 181

7.7.1 滚动视图的实现方法 181

7.7.2 滚动区域参数设置 181

7.8 定制图形滚动功能 183

7.8.1 确定滚动步长 183

7.8.2 创建滚动条 184

7.8.3 实现图形滚动功能 184

第8章 图形的删除和恢复 190

8.1 鼠标点选图形元素 190

8.1.1 各种图形元素的选中区域 190

8.1.2 各种图形元素的点选判断函数 195

8.1.3 选中图形元素的特殊显示 199

8.1.4 实现点选图形元素功能 199

8.1.5 放弃选中的图形元素 205

8.1.6 图形元素的显示和选中顺序 205

8.2 图形元素的删除 206

8.2.1 删除操作的类型 206

8.2.2 从屏幕上删除图形元素的方法 207

8.2.3 各类图形元素的删除操作 208

8.2.4 实现图形元素删除操作 212

8.3 文档操作逆向化 213

8.3.1 逆向操作的含义 213

8.3.2 记录文档编辑操作过程 214

8.3.3 实现文档逆向操作 220

8.3.4 实现操作过程的完全逆向化 222

第9章 图形的存取功能 223

9.1 利用串行化存取文档 223

9.1.1 CArchive类及CArchive对象的创建 223

9.1.2 Serialize函数 225

9.1.3 CObArray类的Serialize函数 227

9.2 实现矢量图形系统的存取功能 228

9.2.1 实现各个图形元素类的串行化 228

9.2.2 MFC框架程序的文档串行化机制 232

9.2.3 实现矢量图形系统的文档存取功能 233

9.2.4 SetModifiedFlag函数 235

第10章 矢量图形系统的其他功能 238

10.1 图形块管理 238

10.1.1 组织管理图形块 238

10.1.2 组织图例 240

10.1.3 创建图形块的方法 241

10.2 管理各种图形参数 242

10.2.1 管理颜色 242

10.2.2 管理图层 243

10.2.3 管理线型 246

10.2.4 增加辅助绘图模式 246

10.3 图形的打印输出 247

10.3.1 视图的打印机理 247

10.3.2 打印功能的实现方法 248

10.4 与AutoCAD的DXF文件的接口 251

10.4.1 与AutoCAD接口的条件 251

10.4.2 实现与DXF文件的接口功能 251

第三篇 数据库管理系统 259

第11章 开发数据库应用程序的基础知识 259

11.1 关系数据库简介 259

11.1.1 关系数据库的概念 259

11.1.2 关系数据库的基本术语 260

11.2 SQL语言简介 261

11.2.1 选择子式 262

11.2.2 过滤子式 264

11.2.3 排序子式 265

11.3 ODBC及创建ODBC数据源的方法 267

11.3.1 ODBC简介 267

11.3.2 VC++中使用ODBC的方法 268

11.3.3 创建ODBC数据源 268

第12章 数据库应用程序开发技术 275

12.1 创建基于ODBC的数据库应用程序 275

12.1.1 创建一个ODBC数据源 275

12.1.2 MFC AppWizard创建一个数据库应用程序的步骤 276

12.2 CRecordSet类功能分析 277

12.2.1 连接数据源和创建记录集合 278

12.2.2 与记录集合的数据交换 281

12.2.3 打开和关闭记录集合对象 282

12.2.4 过滤记录集合 283

12.2.5 排序记录集合 285

12.2.6 移动指向记录集合的记录指针 287

12.2.7 修改记录集合 290

12.2.8 CRecordSet类的其他操作功能 292

12.2.9 MFC ClassWizard管理CRecordSet派生类 295

12.3 CRecordView视图类分析 299

12.3.1 CRecordView视图类 299

12.3.2 CRecordView视图对象与记录集合对象的联系 301

12.3.3 MFC ClassWizard管理CRecordView派生类 302

12.3.4 视图控制与记录集合数据交换过程剖析 307

12.4 基本数据库管理功能实现剖析 310

12.4.1 浏览功能 310

12.4.2 增加一个操作菜单 316

12.4.3 记录编辑功能 318

12.4.4 数据库过滤功能 321

12.4.5 数据库排序功能 324

12.5 DAO数据库应用程序设计 325

第13章 使用DataView管理数据源 328

13.1 合建Database Project 328

13.1.1 创建Database Project的目的 328

13.1.2 用AppWizard创建Database Project 329

13.2 使用DataView管理数据源的普通功能 330

13.2.1 浏览数据库的组成和结构 330

13.2.2 Query工具条功能介绍 331

13.2.3 组织Select操作 334

13.2.4 组织SQL的Insert操作 337

13.2.5 组织SQL的Insert Value操作 338

13.2.6 组织SQL的Update操作 339

13.2.7 组织SQL的Delete操作 340

13.2.8 组织SQL的Make Table操作 341

13.3 DataView管理SQL数据库 342

13.3.1 针对SQL Server数据源的Database Project 342

13.3.2 创建数据表和修改数据表结构 343

13.3.3 新建数据视图或修改已有的数据视图结构 344

13.3.4 创建和使用存储过程 345

13.3.5 创建和使用数据库图表 348

13.3.6 Database Diagram工具条功能 349

第14章 实现数据库浏览功能 353

14.1 创建一个数据库浏览视图 353

14.1.1 视图的创建过程 353

14.1.2 创建另外一类视图的步骤 355

14.1.3 在矢量图形系统中创建数据库浏览视图 358

14.2 创建一个CRecordSet派生类对象 365

14.2.1 创建一个ODBC数据源 365

14.2.2 创建管理记录集合的CRecordSet派生类 366

14.2.3 创建记录集合对象 371

14.3 实现数据库浏览视图 371

14.3.1 建立视图与记录集合对象的联系 371

14.3.2 获得数据库浏览视图的滚动区域 372

14.3.3 实现数据库浏览视图 374

第15章 实现数据库编辑功能 379

15.1 在数据库浏览视图中建立记录指针 379

15.2 建立数据库编辑功能操作菜单 382

15.2.1 修改菜单资源 383

15.2.2 建立操作菜单消息处理函数 383

15.3 建立编辑数据记录的对话框类 385

15.3.1 建立对话框资源 385

15.3.2 创建编辑数据记录的对话框类 386

15.3.3 设置对话框类的外部对象引用 387

15.3.4 建立对话框控制与记录集合类的映射变量的映射联系 389

15.4 增加和修改数据记录 391

15.4.1 获得记录的唯一识别号 391

15.4.2 增加记录 393

15.4.3 修改记录 396

15.5 删除记录 398

15.5.1 删除当前记录 398

15.5.2 删除所有记录 398

第16章 通用数据库过滤功能 400

16.1 过滤操作的实现方式 400

16.1.1 固定条件过滤操作 400

16.1.2 固定方式过滤操作 400

16.1.3 通用条件过滤操作 401

16.2 创建组织过滤条件的对话框类 402

16.2.1 创建对话框资源 402

16.2.2 创建组织过滤条件的对话框类 404

16.3 组织过滤条件编辑器的各种功能 405

16.3.1 过滤条件编辑器编辑的过滤条件式的语法格式 405

16.3.2 定义和初始化对话框类的变量 407

16.3.3 产生和分解各级条件子式 409

16.3.4 初始化对话框的状态 414

16.3.5 增加条件子式 416

16.3.6 删除和修改条件子式 421

16.3.7 条件子式的分解功能 425

16.3.8 实现过滤操作 428

16.4 在数据库浏览视图中实现过滤功能 430

16.4.1 增加一个操作菜单 430

16.4.2 实现数据库过滤操作功能 431

16.5 增强过滤条件编辑器的功能 432

16.5.1 增强过滤条件分解能力 432

16.5.2 增强交互式编辑界面 433

16.5.3 存储过滤条件 434

第17章 通用数据库排序功能 435

17.1 排序操作的方式 435

17.2 通用排序子式编辑器的实现 436

17.2.1 创建一个对话框类 436

17.2.2 定义和初始化对话框类的成员变量 439

17.2.3 产生和分解排序子式 442

17.2.4 增加、插入、修改、删除排序字段 445

17.2.5 进行排序 452

17.3 实现数据库排序功能 453

第18章 数据库管理功能通用化 454

18.1 各种数据库管理功能的可通用化分析 454

18.1.1 可通用化的数据库管理功能 454

18.1.2 不易通用化的功能 455

18.2 实现数据库管理功能通用化 456

18.2.1 通用化功能模块的方法 456

18.2.2 功能模块通用化的步骤 458

18.2.3 选择操作不同的记录集合对象 463

18.2.4 增加应用程序管理的记录集合对象 465

18.2.5 增加通用数据库操作功能 469

18.3 数据库管理功能完全通用化 471

第四篇 基本GIS系统 475

第19章 矢量图形系统与数据库管理系统的连接 475

19.1 连接方式及连接单元 475

19.1.1 连接方式 475

19.1.2 连接单元 476

19.1.3 连接的特性 476

19.2 唯一标识连接单元 477

19.2.1 标识图形连接单元 477

19.2.2 标识数据连接单元 478

19.3 管理连接信息的方法 479

19.3.1 连接的参数表示 479

19.3.2 存储组织连接信息的方法 480

第20章 在应用程序Draw中实现连接功能 484

20.1 建立管理连接信息的记录集合对象 484

20.1.1 新建记录集合类 484

20.1.2 创建管理连接信息的记录集合对象 487

20.2 组织进行连接操作的对话框类 488

20.2.1 连接操作的具体步骤 488

20.2.2 创建对话框类 488

20.2.3 初始化对话框类 492

20.2.4 实现对话框类的数据交换机制 496

20.2.5 实现对话框类的各操作功能 496

20.3 实现矢量图形系统和数据库管理系统的连接 503

20.3.1 实现连接功能 503

20.3.2 完善连接功能 506

20.4 实现实体 507

20.4.1 实体的概念 507

20.4.2 实体的数据结构 507

20.4.3 有关实体的操作 509

第21章 实现双向信息查询 512

21.1 建立显示和编辑数据信息的对话框类 512

21.2 实现对话框类的操作功能 515

21.2.1 对话框类的初始化 515

21.2.2 编辑性质数据 518

21.2.3 删除与数据连接单元的连接 520

21.3 实现信息查询功能 521

第22章 图形元素的空间拓扑关系 525

22.1 直线与多边形区域的关系 525

22.1.1 直线与直线的关系 525

22.1.2 直线与多边形区域的相交关系 530

22.1.3 连续直线与多边形区域的相交关系 535

22.2 圆弧与多边形区域的关系 537

22.2.1 圆与直线的关系 538

22.2.2 圆弧与直线的关系 542

22.2.3 圆弧与多边形区域的关系 544

22.3 图形元素与圆形区域的关系 548

22.3.1 圆与圆的关系 549

22.3.2 圆弧与圆形区域的关系 551

22.3.3 直线与圆形区域的关系 554

第23章 GIS系统空间信息统计和分析功能 556

23.1 空间信息统计和分析的实现步骤 556

23.2 区域信息统计和分析 557

23.2.1 区域选择图形元素的方法 557

23.2.2 区域信息统计和分析 559

23.3 线类相交信息统计和分析 560

23.3.1 线类相交选择图形元素的方法 560

23.3.2 线类相交区域计算 561

23.3.3 线类相交信息统计和分析 561

23.4 实用GIS系统开发 562

第五篇 多用户GIS系统 567

第24章 开发分布式多用户数据库管理系统 567

24.1 Visual C++开发分布式多用户数据库管理系统 567

24.1.1 服务器/客户机应用程序设计 567

24.1.2 Visual C++开发基于服务器/客户机体系的数据库管理系统 567

24.2 分布式多用户数据库管理系统开发技术 568

24.2.1 定期更新记录集合对象 568

24.2.2 多用户应用程序中对记录的修改策略 570

第25章 实现多用户GIS系统 574

25.1 部分多用户化GIS系统 574

25.1.1 部分多用户化GIS系统 574

25.1.2 实现数据库管理系统的多用户化 574

25.1.3 实现连接信息管理多用户化 575

25.2 完全多用户化GIS系统 575

25.2.1 矢量图形元素的数据库记录化 575

25.3.2 转换数据表的内容为图形元素 577

附录 本书所附光盘内容及技术支持 578

参考书目 579

查看更多关于Visual C++开发GIS系统 开发实例剖析的内容

相关书籍
作者其它书籍
返回顶部