基于MAPGIS的汾河上游信息系统的设计与实现Word文件下载.docx
- 文档编号:16833319
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:15
- 大小:667.34KB
基于MAPGIS的汾河上游信息系统的设计与实现Word文件下载.docx
《基于MAPGIS的汾河上游信息系统的设计与实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于MAPGIS的汾河上游信息系统的设计与实现Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。
(3)开发简捷,由于GIS组件可以直接嵌入MIS开发工具中,对于广大开发人员来讲,就可以自由选用他们熟悉的开发工具。
而且,GIS组件提供的API形式非常接近MIS工具的模式,开发人员可以像管理数据库表一样熟练地管理地图等空间数据,无须对开发人员进行特殊的培训。
小小的GIS组件完全能提供拼接、裁剪、叠合、缓冲区等空间处理能力和丰富的空间查询与分析能力。
(4)更加大众化,组件式技术已经成为业界标准,用户可以象使用其他ActiveX控件一样使用GIS控件,使非专业的普通用户也能够开发和集成GIS应用系统,推动了GIS大众化进程。
组件式GIS的出现使GIS不仅是专家们的专业分析工具,同时也成为普通用户对地理相关数据进行管理的的可视化工具。
目前,国内外GIS厂商对组件式GIS平台的发展前景十分看好,纷纷推出了各自的GIS产品。
如北京超图地理信息技术有限公司推出的全组件式GIS平台SuperMap2000、中地软件的MapGissdk、ESRI的MapObjects、MapInfo的MapX等。
而且国产的组件式GIS平台在功能上已经完全可以与国外同类产品相抗衡,在许多方面甚至优于国外同类产品,这使得开发以GIS为核心的数字化成图系统有了更大的选择空间。
VB语言具有进行可视化程序设计、简单易用、易与外部数据
针对上述条件,我选择了中地的MAPGISSDK,MAPGIS是武汉中地信息工程有限公司研制的具有自主版权的大型基础地理信息系统平台。
它是一个集当代最先进的图形、图像、地质、地理、遥感、测绘、人工智能、计算机科学于一体的大型智能软件系统,是集数字制图、数据库管理及空间分析为一体的空间信息系统,是进行现代化管理和决策的先进工具,并支持多种开发语言如:
VB,VC++,DELPHI,POWERBUILDER。
2、开发设计方案
开发流程图
系统结构图
2.1数据库设计
数据库设计分空间数据库和属性数据库,其中空间部分由MAPGIS65制作,属性数据由FOXPRO建库。
2.2数据采集
首先将原始纸质地图扫描入计算机,在MAPGIS65的图像处理模块进行格式转换生MSI格式的文件并配准,在图形处理模块进行矢量化。
由于图纸太大扫描仪不能一次性扫描,只能分块扫描,矢量化,最后进行接边处理。
2.3系统设计
系统旨在对入库的有关数据进行处理如缓冲区处理,叠加处理,坡度坡向分析。
出于简洁、实用的原则,我把系统分为四个模块,这也有利于后期的编程工作,四个模块可分别编写,最后集成到主界面,从而达到提高工作效率的目的。
前三个模块主要应用的是EDITVIEW控件,GISATTEDIT控件。
整个系统的四个模块是一个数据处理过程,首先由数据处理模块对数据处理,再由模型分析和三维显示进行特定的操作,最后经报表输出模块输出文字性结果。
为了满足用户不同查询需要、还加入了SQL查询,这个功能是调用了MAPGISBASCOM1.DLL中的QUERY对象。
系统主界面
2.3.1、数据处理
该模块主要对数据进行各种后期处理,除了包括放大,缩小,漫游,复位等常见功能外,还可以进行数据的修改,如点,线,面的输入,保存,删除。
但最主要的是属性数据与空间数据的联动以及SQL查询,可以进行动态浏览。
为后面的模型分析和报表输出提供数据支持。
多窗口据处理模块界面
图形编辑功能
属性数据显示
2.3.2、模型分析
该模型是本系统的主要功能所在,也是对汾河上游项目提供技术支持的核心,主要包括缓冲区分析,坡度坡向分析,适应性分析,发展预测,对比分析。
比如缓冲区分析,在确定了目标点和半径后就可以求出影响范围,这在污染源分析中很重要,再将结果和市区图等叠加就可以直观地表现影响范围。
缓冲区分析
2.3.3、三维显示
该模块用于生成TIN,GRID格式的文件,并可以打开TIN,GRID格式的文件,通过“三维图形显示”可以直观地浏览DEM的三维图像。
还可以与其它专题图叠加,但现在版本的MAPGIS开发工具还没有这个功能,希望7.0版能完善EDITVIEW控件的三维显示功能。
GRID处理
TIN处理
2.3.4、报表输出
本模块主要用于生成并打印各种表格,相关信息,数据汇总统计以及各种专题图。
2.4系统实现
MAPGIS组件不依赖于某一种开发语言,它可以直接嵌入到通用的开发环境(如VISUALBASIC或VC++)中实现GIS功能。
通过调用MAPGIS组件的基本功能,并结合其他专业模型和专业模型分析控件,可以快速地开发GIS应用程序,这就大大降低了GIS应用系统的开发难度与开发成本。
利用MAPGIS组件开发平台进行GIS应用程序的开发主要分以下几个步骤进行:
(1)选择应用系统的开发工具,如VB;
(2)将使用到的MAPGIS组件引用到应用程序中;
(3)调用MAPGIS组件的属性和方法完成GIS基本功能;
(4)开发应用系统专用的功能。
WINDOWS文件与MAPGIS组件对应关系
WINDOWS文件MAPGIS组件(控件)
MapGisBasCom1.dl数据管理组件
MapGisDspCom.dll图形显示组件
MapGisLayerCom.dll图层管理组件
MapGisMapCom.dll地图管理组件/图例管理组件
MapGisDBSCom.dll图库管理组件
MapGisRasterCom.dll图像分析管理组件
EditView.ocx图形编辑控件
MapTree.ocx工程管理控件
GisAttEdit.ocx属性编辑控件
AttStruEdit.ocx属性结构编辑控件
GIS通用功能组件(控件)集合提供了MAPGIS平台的通用处理功能。
通用功能组件基于数据管理组件构造而成,它们具有面向通用GIS功能;
图形显示对象MAPGISDC封装了MAPGIS的基本显示操作;
图层对象Layer封装了点、线、区、网文件的数据管理功能;
地图对象Map封装了对MAPGIS基本图形的编辑/输出操作和对多个图层的管理功能;
图例对象Legend封装了点、线、区图例元素的管理和操作功能,并提供了管理图例文件存储和图例元素的功能;
MSI对象封装了对图像工作区的操作和显示,并提供了矢量数据和栅格数据的相互转换功能;
DBS对象封装了操作和显示图库工作区的方法。
同时,MAPGIS组件开发平台还提供了几个可视化控件EditView控件对象,包括点编辑、线编辑、区编辑、数字化、矢量化及其他操作功能;
MapTreeCtrl控件对象封装了与Map对象的交互操作功能;
GisAttEdit控件对象主要用来浏览和编辑MAPGIS属性数据;
AttStruEdit控件对象主要用来浏览和编辑MAPGIS属性结构。
首先将需要的组件和控件在WINDOWS注册表或REGSUV命令进行注册,这样就可以像使用普通VB的ACTIVEX控件一样使用MAPGIS控件了。
系统部分VB代码:
数据处理模块
该函数用来打开文件,可以是点,线或面。
PublicFunctionloadfile(ByValaiTypeAsEnum_Area_Type)
DimpntaiAsPntArea
DimlinaiAsLinArea
DimregaiAsRegArea
DimmyformAsNewfrmDocument
loadfile=0
SelectCaseaiType
CasegisPNT:
Setpntai=NewPntArea
Ifpntai.LoadThen
loadfile=1
myform.aiType=gisPNT
Setmyform.Ai=pntai
myform.EditView1.PntArea=pntai
myform.EditView1.SetWinMapRangepntai.rect.xmin,pntai.rect.ymin,pntai.rect.xmax,pntai.rect.ymax
EndIf
CasegisLIN:
Setlinai=NewLinArea
Iflinai.LoadThen
myform.aiType=gisLIN
Setmyform.Ai=linai
myform.EditView1.LinArea=linai
myform.EditView1.SetWinMapRangelinai.rect.xmin,linai.rect.ymin,linai.rect.xmax,linai.rect.ymax
CasegisREG
Setregai=NewRegArea
Ifregai.LoadThen
myform.aiType=gisREG
Setmyform.Ai=regai
myform.EditView1.RegArea=regai
myform.EditView1.SetWinMapRangeregai.rect.xmin,regai.rect.ymin,regai.rect.xmax,regai.rect.ymax
CaseElse
EndSelect
IfloadfileThen
myform.Show
myform.EditView1.RestoreWindow
myform.EditView1.DspBigCross=False
Else
Setmyform=Nothing
EndIf
Setpntai=Nothing
Setlinai=Nothing
Setregai=Nothing
EndFunction
SQL过程
PrivateSubsql_Click()
DimobjQueryAsNewMAPGISBASCOM1Lib.Query
DimregnumAsLong
DimobjIDListAsNewIDList
objQuery.sourceArea=linai
EditView1.FlashElement
SetobjIDList=objQuery.AttAskToList(gisREG_ENTITY)
IfNotobjIDListIsNothingThen
Forregnum=0ToobjIDList.Count-1
EditView1.GotoElementlinai,objIDList(regnum),gisREG_ENTITY
GisAttEdit1.GotoAttobjIDList(regnum)
Debug.PrintobjIDList(regnum)
Nextregnum
SetobjIDList=Nothing
EndSub
三维模块
DimiTinLayerAsNewMAPGISTINCOMLib.TinLayer
DimiTinAreaAsMAPGISTINCOMLib.TinArea
DimiLinAsNewLinArea
DimiPntAsNewPntArea
DimdemInfoAsNewDemInfoStru
PublicDspMyDrawAsInteger
DimresAsBoolean
PrivateSubabout_Click()
MsgBox"
版本"
&
App.Major&
"
."
App.Minor&
App.Revision&
作者左海龙"
PrivateSubclose_Click()
UnloadForm2
PrivateSubcontent_Click()
请向左海龙购买正版软件"
PrivateSubEditView1_MyDraw(ByValMpDCAsObject)
DimmdcAsMapGisDC
SelectCaseDspMyDraw
Case0:
ExitSub
Case1:
IfiLin.EmptyThen
未打开线文件"
Else
Setmdc=MpDC
mdc.DispAreaiLin
Case2:
iTinLayer.Displaymdc
Case3:
IfiPnt.EmptyThen
未打开点文件"
mdc.DispAreaiPnt
CaseElse:
非法的类型!
"
Setmdc=Nothing
PrivateSubForm_Load()
Form_Resize
页面重画函数
PrivateSubForm_Resize()
EditView1.Height=9500
EditView1.Width=15600
PrivateSubopen_Click()
SetiTinArea=iTinLayer.TinArea
res=iTinArea.loadfile()
Ifres=FalseThen
打开高程文件失败!
DimrectAsD_Rect
Setrect=iTinArea.rect
EditView1.SetWinMapRangerect.xmin,rect.ymin,rect.xmax,rect.ymax
EditView1.RestoreWindow
DspMyDraw=2
漫游功能
PrivateSubpan_Click()
EditView1.MoveWindow
工具栏各按钮功能
PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)
OnErrorResumeNext
SelectCaseButton.Key
Case"
放大"
zoomin_Click
缩小"
zoomout_Click
帮助"
about_Click
漫游"
pan_Click
打开"
open_Click
EndSelect
复位功能
PrivateSubupdate_Click()
放大功能
PrivateSubzoomin_Click()
EditView1.zoomin
PrivateSubzoomout_Click()
EditView1.zoomout
四、结语
本系统已经初步完成,经过试运行,用户反映该系统界面友好、使用方便,基本上能够满足汾河项目的要求。
但是由于时间的限制,所编程序的整体规划及一些技术细节还有待进一步改进;
为了满足用户更高的需求,外部数据库也有必要进一步扩充与完善。
只要做好各种属性数据的录入建库,不断修改、更新原有的数据,就会使本系统发展成为现势性强、查找方便、输出形式多样化的新型系统,从而实现该系统的动态管理,有效提高工作效率,以便为项目的工作提供更快捷方便的服务。
参考文献
[1]、潘瑜涛,钟耳顺,梁军.基于GIS数据库技术的地籍管理系统研究,地理研究.
[2]、龚健雅.地理信息系统基础,科学出版社.
[3]、刘光.地理信息系统二次开发教程,清华大学出版社.
[4]、李满春,陈刚,任建武,周炎坤.GIS设计与实现,科学出版社.
[5]、黄杏元,马劲松,汤勤.地理信息系统概论,高等教育出版社.
[6]、数字化地理系统建设与MAPINFO高级应用
[7]、韩丽蓉,过静珺.利用VB进行MAPGIS二次开发建立房屋信息管理系统.
[8]、周顺平,王海龙.基于MAPGIS组件的二次开发.
[9]、宋关福.组件式地理信息系统研究与开发,中国图像图形学报.
[10]、邬伦.地理信息系统—原理、方法和应用,科学出版社.
[11]、边馥玲.GIS原理与方法,测绘出版社.
[12]、毕硕本,王桥,徐秀华.地理信息系统软件工程的原理与方法,科学出版社.
[13]、邬伦,任伏虎,谢昆青.地理信息系统教程,北京大学出版社.
[14]、MAPGIS二次开发教程,武汉中地信息工程有限公司.
[15]、MAPGIS组件开发手册,武汉中地信息工程有限公司.
ThedesignandtherealizationoftheFenriverupperstream
informationsystembasedonMAPGIS
[Abstract]TheCOMGISisthenewgenerationgeographicinformationsystemthattheGISandtheCOMtechniquescombinetogether.ThispapermainlyelaboratedtomakeuseoftheMapgis65geographicinformationsystemsoftwareintheupstreamofFenheriverupperstreaminformationsystemdevelopmentofapplication,theusageMAPGIScomponentcarriesonthegeneralmethodandstepsthattheGISapplicationsoftwaredevelops,andusebasicstepoftheMAPGIScomponentobjectintheVB.Makeuseofthatsystemwecarriedoutthedataprocessing,modelanalysis,three-dimensionalmanifestation,thestatementoutputs.Andmakesadetailedelaborationtoactuallythepresentmethod.
[Keywords]UpstreamofFenherive;
componentGIS;
MAPGIS;
SDK
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MAPGIS 上游 信息系统 设计 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)