1 / 67

GIS 软件开发技术

GIS 软件开发技术. 主讲:蔡忠亮 武汉大学资源与环境科学学院. 课程主要内容. 第一部分 GIS 软件开发技术基础 第二部分 MapInfo 环境下的 GIS 开发技术 第三部分 Arc/Info 环境下的 GIS 开发技术 第四部分 GIS 底层开发技术. 第四部分 GIS 软件底层开发技术. 第一章 GIS 软件界面设计 第二章 数据管理模块开发 第三章 视图管理模块开发 第四章 图形编辑模块开发 第五章 数据库模块开发 第六章 空间分析模块开发 第七章 制图模块开发 附 录 常用开发技术. 实例设计. 实例设计.

diella
Download Presentation

GIS 软件开发技术

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. GIS软件开发技术 主讲:蔡忠亮 武汉大学资源与环境科学学院

  2. 课程主要内容 第一部分 GIS软件开发技术基础 第二部分 MapInfo环境下的GIS开发技术 第三部分 Arc/Info环境下的GIS开发技术 第四部分 GIS底层开发技术 2

  3. 第四部分 GIS软件底层开发技术 • 第一章 GIS软件界面设计 • 第二章 数据管理模块开发 • 第三章 视图管理模块开发 • 第四章 图形编辑模块开发 • 第五章 数据库模块开发 • 第六章 空间分析模块开发 • 第七章 制图模块开发 • 附 录 常用开发技术 3

  4. 实例设计 4

  5. 实例设计 CGeoMap CGeoLayer CGeoObject CGeoPoint CGeoLine CGeoPoly CGeoAnno CGeoRegion CGeoRoute CGeoGroup 主要数据结构 5

  6. 第一章 GIS软件界面设计 1.1 GIS用户界面类型 • Command Line • WIMP(Windows,Icons,Menus,Pointing devices) • NL(Natural Language) • DM(Direct Manipulation) • DQ(Dynamic Querying) • VR(Virtual Reality) 6

  7. 第一章 GIS软件界面设计 1.2 GIS用户界面设计原则 • 可视化控件(Widget)一致性原则 • 平台一致性(Platform)原则 • 尽量避免出现用户警告或错误信息 • 用户反馈(Feedback)原则 • 创造安全的研究环境 • 尽量让应用系统清晰明了(Self-Evident) • 节约(尽量少)使用声音、颜色、动画等多媒体 • 提供界面的自定制(Customize)和保存设置的功能 • 避免模式(Modal)行为 • 透明(Transparent)原则 7

  8. 第一章 GIS软件界面设计 1.3 GIS用户界面设计样式 8

  9. 第一章 GIS软件界面设计 1.4 GIS用户界面设计样式 9

  10. 第二章 数据管理模块开发 数据管理 • 系统开放性的标志 • 数据的输入 • 数据的输出 • 数据存储 • 数据的访问方式 • 数据维护 DXF文件结构 10

  11. 第二章 数据管理模块开发 数据管理 FILE CFile 文件操作 fstream 11

  12. 第三章 视图管理模块开发 3.1 与图形显示相关的MFC类 • 绘图类 • CDC • CPaintDC • CClientDC • 绘图设备类 • CFont • CPen • CBrush • CRgn • CPalette • CBitmap 12

  13. 第三章 视图管理模块开发 3.1 与图形显示相关的MFC类 • 坐标映射类 • 设备无关性 • Windows的映射方式 • 设置方式:CDC::SetMapMode(MM_ISOTROPIC); • 逻辑坐标与物理坐标的转换方法 • CDC::LPtoDP() • CDC::DPtoLP() • 窗口与视口 • 窗口与视口概念 • 操作函数 • CDC::SetViewportOrg() • CDC::SetViewportExt() • CDC::SetWindowOrg() • CDC::SetWindowExt() 13

  14. 第三章 视图管理模块开发 3.1 与图形显示相关的MFC类 • 其他绘图类操作函数 • 选用绘图设备对象 • SelectStockObject() • SelectObject() • 绘图属性设置函数 • 设置或获取背景颜色 • SetBkColor() • GetBkColor() • 设置或获取背景模式 • SetBkMode() • GetBkMode() • 设置或获取绘制模式 • SetROP2() • GetROP2() 14

  15. 第三章 视图管理模块开发 3.2 文档与视 • 文档 • 文档打开 • 文档保存 • 文档关闭 • 数据的输入/输出 • 视图 15

  16. 第三章 视图管理模块开发 3.3 交互式图形绘制 • 定义绘制菜单 • 定义鼠标消息 • OnMouseMove() • OnLButtonDown() • OnLButtonUp() • OnRButtonDown() • OnRButtonUp() • OnLButtonDblClk() • OnRButtonDblClk() • 捕捉/释放鼠标焦点 • SetCapture() • ReleaseCapture() • 拖动功能(橡皮条) • 绘制各种目标(图形、文字) 16

  17. 第三章 视图管理模块开发 3.3 交互式图形绘制 • 图形重绘 • Invalidate() • InvalidateRect() • 视图操作 • ZoomIn() • ZoomOut() • Pan() • ShowAll() • FullScreen() • ScaleZoom() 17

  18. 第三章 视图管理模块开发 3.3 交互式图形绘制 视图放大实现 18

  19. 第四章 图形编辑模块开发 4.1 GIS软件中常用编辑功能定义 19

  20. 第四章 图形编辑模块开发 4.2 环境设置 • 定义鼠标动作 • 定义编辑操作 • View中增加鼠标消息 • View中增加菜单消息 • 绘图参数设置 20

  21. 第四章 图形编辑模块开发 4.3 消息处理 • 菜单消息处理 • 鼠标消息处理 21

  22. 第四章 图形编辑模块开发 4.4 GIS编辑功能实现 22

  23. 第五章 数据库模块开发 5.1 开发数据库应用程序的基础 • 关系数据库 • 概念 • 主要关系数据库 • Oracle,SQL Server,Sybase,Informix,Access,FoxPro…… • 数据库的基本术语 • 数据库 • 表(平面数据库) • 视图(虚拟表,一个或多个数据表中的全部或部分字段。全部或部分记录组成) • 记录集合 23

  24. 第五章 数据库模块开发 5.1 开发数据库应用程序的基础 • SQL语言 • 概念 • Structured Query Language, 用于定义、操作和管理数据库表的工业标准 • 常用语言 • 选择:select *(FieldName1,…) from table1,… select table.* from table1,…where table2.FieldName = “wuhan” select table.* from table1,…where table2.FieldName = “wuhan” AND table1.FieldName > 50 • 过滤:select * from table1 where fieldvalue>50 • 排序:select * from table1 ORDER BY FieldName ASC(DESC) select * from table1,table2,…ORDER BY table1.FieldName ASC, table2.FieldName DESC 24

  25. 第五章 数据库模块开发 5.1 开发数据库应用程序的基础 • 数据库的访问方式 • ODBC(Open Database Connectivity) • MFC ODBC 25

  26. 第五章 数据库模块开发 5.1 开发数据库应用程序的基础 • 数据库的访问方式 • DAO(Data Access Object) 26

  27. 第五章 数据库模块开发 5.1 开发数据库应用程序的基础 • 数据库的访问方式 • OLEDB 27

  28. 第五章 数据库模块开发 5.1 开发数据库应用程序的基础 • 数据库的访问方式 • ADO(ActiveX Data Object) 28

  29. 第五章 数据库模块开发 5.2 数据库应用程序开发技术 • Visual C++开发数据库技术的特点 • 简单性 • 灵活性 • 访问速度快 • 可扩转性 • 访问不同类数据源 • VC开发数据应用程序 • 基于ODBC • 基于DAO • 基于ADO 29

  30. 第五章 数据库模块开发 5.3 VC开发实例 • ODBC 30

  31. 第五章 数据库模块开发 5.3 VC开发实例 • ADO 31

  32. 第五章 数据库模块开发 5.4 GIS数据库 • 混合数据库模型(Hybrid Model) • 扩展结构模型(Extent Model) • 统一数据模型(Integrated Model) • 面向对象模型(Object-Oriented Model) • 时空数据模型(Spatial-Temporal Model) 32

  33. 空间数据与属 性数据分开存储 关系数据库存 储空间数据 第五章 数据库模块开发 应用 33

  34. 第六章 空间分析模块开发 6.1 空间分析模块内容 • 缓冲分析 • 叠置分析 • 网络分析 • 空间统计分析 • 聚类分析 • ……

  35. 第六章 空间分析模块开发 6.2 模块设计 应 用 模 型 Application Level GIS 空间分析 GIS Level 算 法 基 础 Graphic Level

  36. 第六章 空间分析模块开发 6.2 模块设计 GIS系统 GIS空间分析 制图输出 地理数据库 (DLM) 地图数据库 (DCM)

  37. 第六章 空间分析模块开发 6.2 模块设计 基 础 数据结构 图形学 算法基础 ……

  38. 第六章 空间分析模块开发 6.2 模块设计 网络分析 分层网络拓扑结构

  39. 第六章 空间分析模块开发 6.2 模块设计 网络分析

  40. 第六章 空间分析模块开发 6.3 模块实现 Node Arc Route

  41. 第六章 空间分析模块开发 6.3 模块实现 Node

  42. 第六章 空间分析模块开发 6.3 模块实现 Node

  43. 第六章 空间分析模块开发 6.3 模块实现 Arc

  44. 第六章 空间分析模块开发 6.3 模块实现 Arc

  45. 第六章 空间分析模块开发 6.3 模块实现 DirLine

  46. 第六章 空间分析模块开发 6.3 模块实现 DirLine

  47. 第六章 空间分析模块开发 6.3 模块实现 Path 距离矩阵 路径算法 (Dijkstra等) 换乘方案 路径规划

  48. 第六章 空间分析模块开发 网络拓扑结构生成 6.3 模块实现

  49. 第六章 空间分析模块开发 6.3 模块实现

  50. 第七章 制图模块开发 7.1 图面整饰 7.2 符号系统 7.3 制图字体 7.4 专题地图制图 7.5 普通地图制图 50

More Related