第四部分GIS底层开发技术_第1页
第四部分GIS底层开发技术_第2页
第四部分GIS底层开发技术_第3页
第四部分GIS底层开发技术_第4页
第四部分GIS底层开发技术_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

GIS软件开发技术主讲:蔡忠亮武汉大学资源与环境科学学院2课程主要内容第一部分GIS软件开发技术基础第二部分MapInfo环境下的GIS开发技术第三部分Arc/Info环境下的GIS开发技术第四部分GIS底层开发技术3第四部分GIS软件底层开发技术

第一章GIS软件界面设计第二章数据管理模块开发第三章视图管理模块开发第四章图形编辑模块开发第五章数据库模块开发第六章空间分析模块开发第七章制图模块开发附录常用开发技术4实例设计5实例设计CGeoLineCGeoPolyCGeoRegionCGeoRouteCGeoPointCGeoGroupCGeoMapCGeoObjectCGeoLayerCGeoAnno主要数据结构6第一章GIS软件界面设计1.1GIS用户界面类型CommandLineWIMP(Windows,Icons,Menus,Pointingdevices)NL(NaturalLanguage)DM(DirectManipulation)DQ(DynamicQuerying)VR(VirtualReality)7第一章GIS软件界面设计1.2GIS用户界面设计原则可视化控件(Widget)一致性原则平台一致性(Platform)原则尽量避免出现用户警告或错误信息用户反馈(Feedback)原则创造安全的研究环境尽量让应用系统清晰明了(Self-Evident)节约(尽量少)使用声音、颜色、动画等多媒体提供界面的自定制(Customize)和保存设置的功能避免模式(Modal)行为透明(Transparent)原则8第一章GIS软件界面设计1.3GIS用户界面设计样式9第一章GIS软件界面设计1.4GIS用户界面设计样式10第二章数据管理模块开发数据管理系统开放性的标志数据的输入数据的输出数据存储数据的访问方式数据维护DXF文件结构11第二章数据管理模块开发数据管理文件操作FILECFilefstream12第三章视图管理模块开发3.1与图形显示相关的MFC类绘图类CDCCPaintDCCClientDC绘图设备类CFontCPenCBrushCRgnCPaletteCBitmap13第三章视图管理模块开发3.1与图形显示相关的MFC类坐标映射类设备无关性Windows的映射方式设置方式:CDC::SetMapMode(MM_ISOTROPIC);逻辑坐标与物理坐标的转换方法CDC::LPtoDP()CDC::DPtoLP()窗口与视口窗口与视口概念操作函数CDC::SetViewportOrg()CDC::SetViewportExt()CDC::SetWindowOrg()CDC::SetWindowExt()14第三章视图管理模块开发3.1与图形显示相关的MFC类其他绘图类操作函数选用绘图设备对象SelectStockObject()SelectObject()绘图属性设置函数设置或获取背景颜色SetBkColor()GetBkColor()设置或获取背景模式SetBkMode()GetBkMode()设置或获取绘制模式SetROP2()GetROP2()15第三章视图管理模块开发3.2文档与视文档文档打开文档保存文档关闭数据的输入/输出视图16第三章视图管理模块开发3.3交互式图形绘制定义绘制菜单定义鼠标消息OnMouseMove()OnLButtonDown()OnLButtonUp()OnRButtonDown()OnRButtonUp()OnLButtonDblClk()OnRButtonDblClk()捕捉/释放鼠标焦点SetCapture()ReleaseCapture()拖动功能(橡皮条)绘制各种目标(图形、文字)17第三章视图管理模块开发3.3交互式图形绘制图形重绘Invalidate()InvalidateRect()视图操作ZoomIn()ZoomOut()Pan()ShowAll()FullScreen()ScaleZoom()18第三章视图管理模块开发3.3交互式图形绘制视图放大实现19第四章图形编辑模块开发4.1GIS软件中常用编辑功能定义20第四章图形编辑模块开发4.2环境设置定义鼠标动作定义编辑操作View中增加鼠标消息View中增加菜单消息绘图参数设置21第四章图形编辑模块开发4.3消息处理菜单消息处理鼠标消息处理22第四章图形编辑模块开发4.4GIS编辑功能实现23第五章数据库模块开发5.1开发数据库应用程序的基础关系数据库概念主要关系数据库Oracle,SQLServer,Sybase,Informix,Access,FoxPro……数据库的基本术语数据库表(平面数据库)视图(虚拟表,一个或多个数据表中的全部或部分字段。全部或部分记录组成)记录集合24第五章数据库模块开发5.1开发数据库应用程序的基础SQL语言概念StructuredQueryLanguage,用于定义、操作和管理数据库表的工业标准常用语言选择:select*(FieldName1,…)fromtable1,…selecttable.*fromtable1,…

wheretable2.FieldName=“wuhan”

selecttable.*fromtable1,…

wheretable2.FieldName=“wuhan”

ANDtable1.FieldName>50过滤:select*fromtable1wherefieldvalue>50排序:select*fromtable1ORDERBYFieldNameASC(DESC)

select*fromtable1,table2,…

ORDERBYtable1.FieldNameASC,

table2.FieldNameDESC25第五章数据库模块开发5.1开发数据库应用程序的基础MFCODBC数据库的访问方式ODBC(OpenDatabaseConnectivity)26第五章数据库模块开发5.1开发数据库应用程序的基础数据库的访问方式DAO(DataAccessObject)27第五章数据库模块开发5.1开发数据库应用程序的基础数据库的访问方式OLEDB28第五章数据库模块开发5.1开发数据库应用程序的基础数据库的访问方式ADO(ActiveXDataObject)29第五章数据库模块开发5.2数据库应用程序开发技术VisualC++开发数据库技术的特点简单性灵活性访问速度快可扩转性访问不同类数据源VC开发数据应用程序基于ODBC基于DAO基于ADO30第五章数据库模块开发5.3VC开发实例ODBC31第五章数据库模块开发5.3VC开发实例ADO32第五章数据库模块开发5.4GIS数据库混合数据库模型(HybridModel)扩展结构模型(ExtentModel)统一数据模型(IntegratedModel)面向对象模型(Object-OrientedModel)时空数据模型(Spatial-TemporalModel)33

关系数据库存储空间数据第五章数据库模块开发空间数据与属性数据分开存储应用6.1空间分析模块内容缓冲分析叠置分析

网络分析空间统计分析

聚类分析……第六章空间分析模块开发6.2模块设计算法基础GIS空间分析应用模型GraphicLevelGISLevelApplicationLevel第六章空间分析模块开发6.2模块设计GIS空间分析制图输出地理数据库(DLM)地图数据库(DCM)GIS系统第六章空间分析模块开发6.2模块设计基础数据结构图形学算法基础……第六章空间分析模块开发6.2模块设计网络分析分层网络拓扑结构第六章空间分析模块开发6.2模块设计网络分析第六章空间分析模块开发6.3模块实现NodeArcRoute第六章空间分析模块开发6.3模块实现Node节点编号关联弧段节点坐标1ArcID1,ArcID2,…X,Y2ArcID3,ArcID9,…X,Y………第六章空间分析模块开发第六章空间分析模块开发6.3模块实现Node弧段编号起始节点

终止节点弧段坐标弧段长度1NodeID1NodeID2(x1,y1)(x2,y2)(…)20.502(x1,y1)(x2,y2)(…)78.98…………第六章空间分析模块开发6.3模块实现Arc第六章空间分析模块开发6.3模块实现Arc编号经由的节点、弧段号长度1Node1,Arc2,Node2,Arc4,Arc5,Node3,…..2………第六章空间分析模块开发6.3模块实现DirLine第六章空间分析模块开发6.3模块实现DirLine距离矩阵路径算法(Dijkstra等)路径规划换乘方案第六章空间分析模块开发6.3模块实现Path6.3模块实现网络拓扑结构生成第六章空间分析模块开发6.3模块实现第六章空间分析模块开发50第七章制图模块开发7.1图面整饰7.2符号系统7.4专题地图制图7.5普通地图制图7.3制图字体51第七章制图模块开发7.1图面整饰52第七章制图模块开发53第七章制图模块开发7.2符号系统54第七章制图模块开发55第七章制图模块开发7.3制图字体56第七章制图模块开发7.3专题地图制图57第七章制图模块开发58第七章制图模块开发7.5普通地图制图59第七章制图模块开发60附录:常用开发技术1.模板类CArrayGetSize(),GetAt(),Add(),ElementAt(),RemoveAt(),SetAt(),……CObListGetCount(),AddHead(),AddTail(),GetNext(),GetPrev()(),InsertBefore(),……vectorsize(),at(),push_back(),reverse(),……mapinsert(),find(),clear(),,……61附录:常用开发技术2.常用类的常用消息函数CWinAppInitInstance()ExitInstance()FileNew()FileOpen()OnIdle()CMainFrameOnCreate()OnClose()OnSize()PreCreateWindow()CDocumentOnNewDocument()OnOpenDocument()Serialize()62附录:常用开发技术2.常用类的常用消息函数CViewOnInitUpdate()OnSize()OnMouseMove(),……OnPrepareDC()OnDraw()OnSetCursor()GetDocument()OnTime()CDialogOnInitDialog()PostNcDestroy()OnSize()PreCreateWindow()OnTime()UpdateData()63附录:常用开发技术2.常用类的常用消息函数CListBoxOnCreate()OnSelchange()DrawItem(),……MeasureItem()CompareItem()OnChar()OnKillFocus(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论