GIS软件开发课程设计报告书1.docx
《GIS软件开发课程设计报告书1.docx》由会员分享,可在线阅读,更多相关《GIS软件开发课程设计报告书1.docx(17页珍藏版)》请在冰豆网上搜索。
GIS软件开发课程设计报告书1
GIS软件开发课程设计
报告书
题目名称:
全球信息查询系统
院系:
管理学院地理科学
专业班级:
地理科学0811
1引言
随着我国经济水平突飞猛进的发展,科学技术不断向前,传统的教学方式效率不高,因此越来越不能满足教育服务工作的需要。
全球查询服务系统将为科学技术普及中学教学工作提供一种方便、快捷的方式。
该系统将为科学普及和教学工作的发展带来很好的促进作用。
电子地图是空间信息表达与可视化的主要形式,电子地图作为一种新型地图,无论在地理信息的地图表示方面,还是在地图信息的利用方面,都有其独特的优势。
但是目前人们对电子地图的编绘和使用只是局限在用传统的纸质地图的制图理论和方法制作电子地图,将电子地图的利用视为传统纸质地图利用方式的自动化。
没有充分挖掘GIS独特的优势(比如要素与属性的双向查询),电子地图的应用也受到限制。
空间查询与空间分析是GIS(GeographyInforma-tionSystem,地理信息系统)的核心特征之一,也是空间信息服务(如WebFeatureService)实现中的关键问题。
如何在网络地图服务场景下提供高效能的空间查询与空间分析功能是网络地图服务器设计与实现中的挑战性问题。
2系统分析
2.1需求分析
目前,随着信息化水平的不断提高以及信息技术的普及,相关技术逐渐进入一般人的生活中,因而数字化信息化的教学方式被引入一般中学教学以及一些科学技术普及工作中,然而在相关需求不断扩大的现在,与其相配套的技术却略有滞后,传统的方法不仅操作难度大,同时效率低下。
如何满足人们日益增长的需求以及方便教师与科普工作者进行一般的教育科普工作,是当前必须解决的一个问题。
基于GIS的全球地理查询系统是一个拥有全球地方简易地理信息的数据库,集成了地理信息管理模块可以实现GIS的空间查询,分析功能及可视化功能的软件。
其旨在满足广大教育与科学普及工作者的需求,采用GIS技术,使地理数据的查询、分析更加方便快捷,且操作简单容易,易于一般没有任何计算机操作的人员使用。
实现了授课的高科技化。
该信息平台大大提高了信息化、智能化程度,提高了数据的集成度,对空间数据的查询,分析更加方便、数据结构更为合理,并增加了对动态数据的存储、处理和显示,提供了更多的管理与分析模块,在一般中学教学与科学普及工作中有一定的优势。
3系统设计
3.1总体设计
3.1.1用户需求
在系统具体设计前必须明确所要设计系统的用户需求,只有了解了用户的具体要求才能依此为依据进行系统具体功能的设计,这样设计的系统才有其存在的意义。
然而对于本系统来说其用户的需求是能够方便快捷的查询,分析世界地图上各个地区的一些基本的地理信息属性,例如面积,经纬度,距离等,并可以实现数据筛选功能。
同时操作要求便捷,数据要用文字,数字,图形等快速的显示出来。
3.1.2系统目标
全球地理查询系统的目标主要是实现中学课堂教学及一般科学普及单位科普工作的信息化,来满足当前社会发展趋势下用户要求,可以给用户提供一些最基本的地理信息,为了提高课堂教学以及科学普及工作的信息化,加快教育信息化发展,为地理教学科普而开发基于SuperMapObject6.0和VisualBasic语言GIS建立的全球地理查询系统,并希望通过这个系统使课堂地理教学信息化更加普及,系统目标如下:
(1)系统应能实现图形和属性的连接,实现用户对图形及属性的双向检索;
(2)系统具有快速对地理信息进行查询、空间分析与显示功能;
(3)系统应具有良好的扩展性与改进空间。
3.1.3总体结构
本课题所研究的全球地理查询系统根据用户的需要,实现了地理信息查询,以及测距,测面积的功能。
经过需求分析阶段的工作后,系统必须“做什么”的问题已经解决了,现在是解决“怎么做”这个问题的时候了。
总体设计的基本目的就是回答系统应该如何实现这个问题。
系统总体结构设计是要根据系统分析的要求和组织的实际情况来对新系统的总体结构形式进行大致设计,它是一种宏观、总体上的设计和规划。
1)全球地理查询系统主要功能是让用户方便对于基础地理信息的查询与分析工作,方便教学与科普活动。
2)数据的属性查询模块主要功能是对所属地区基本地理信息,例如面积,经纬度等的查询。
3)条件查询的主要功能是设置一条件,对于满足此条件的地域进行显示的功能。
系统功能总体结构图如图1:
图1、系统功能总结构图
3.1.4系统功能
本课题主要基本地理信息的查询分析服务,目的是为课堂教学更加科学更加人性化,是用户轻而易举就可以完成地理相关信息的查询与检索功能。
本系统重要包括五个独立的模块:
地图浏览模块,查询模块,娱乐模块,精确查询模块,帮助模块。
几个模块的使用大大提高了用户信息检索的效率与精确度,为用户提供了很大的方便。
3.2详细设计
3.2.1子系统设计
本系统主要分为5个独立的模块:
地图浏览模块、娱乐模块、精确查询模块、查询功能模块,帮助模块。
在地图浏览模块中,用户可以使用相关控件对地图进行漫游,放大,缩小,也可以根据个人需要进行自由缩放,以及全屏观看在娱乐模块中,为大家在学习工作之余提供了小游戏。
在精确查询模块中,进行SQL查询,根据用户的不同需求对信息进行检索,并对检索结果进行排序,并且可以保存输出查询结果。
在查询模块中,可以查询相关地域的属性,使用条件查询可以对地图上的符合查询条件的地点通过图像进行显示。
帮助模块用于对用户提供一定的帮助。
3.2.2数据库设计
由于是地理信息系统,全球地理查询系统数据库也应包括空间数据库和属性数据库,再此采用关系型数据库模式。
具体的属性数据以图表形式记录,而图形数据以拓扑关系记录。
并且在这些建立这些专题数据库时要注意各种专题信息的关系字段,保证互相之间都有联系。
数据建库时,要按照分类标准进行科学分类,要符合数据编码的一般要求:
(1)凡国家已施行的编码规范和标准,均按国家规定的执行;
(2)科学编码系统的设计必须可靠地识别数据信息的分类,以较少的代码提供丰富的参考信息,以及根据代码结构能进行数据间关系的逻辑推理和判别;
(3)编码不宜过长,一般为4—7位,以减少出错的可能性和节省存储空间。
对于多要素的数据信息,通过设置特征位来有效地压缩码位的长度;
(4)编码标准化,其内容包括统一的码位长度、一致的码位格式和明确的代码含义,不能出现代码的多义性等等。
此外,数据质量要严格控制,主要控制保证:
数据完整性、数据一致性、位置精度、时间精度、属性精度。
系统E-R图如图2:
图2、系统E-R
3.2.3功能模块设计
(1)查询功能模块
PrivateSubToolbar2_ButtonClick(ByValButtonAsMSComctlLib.Button)
SelectCaseButton
Case"属性查询"
SuperMap1.Action=scaSelect
Case"条件查询"
DimobjDsAssoDataSource'数据源
DimobjDtVectorAssoDatasetVector'矢量数据集
DimobjRecordsetAssoRecordset'记录集
DimobjSelectionAssoSelection'选择集
'取矢量数据集:
取其中面数据集"World"进行查询
SetobjDs=SuperWorkspace1.Datasources.Item("MyDataSource")
IfobjDsIsNothingThenExitSub
SetobjDtVector=objDs.Datasets("World")
IfobjDtVectorIsNothingThen
MsgBox"打开数据集错误",vbInformation
ExitSub
EndIf
'使用SQL过滤条件安从数据集中查询出记录集,
SetobjRecordset=objDtVector.Query(txtExpression.Text,True)
IfobjRecordsetIsNothingThen
ExitSub
Else
'将查询结果加入到选择集中,使其高亮显示
SetobjSelection=SuperMap1.Selection
objSelection.FromRecordsetobjRecordset
'刷新地图窗口
SuperMap1.Refresh
EndIf
SetobjDtVector=Nothing
SetobjRecordset=Nothing
SetobjSelection=Nothing
EndSelect
EndSub
PrivateSubCommand1_Click()
Dims1AsString
Dims_idAsString
Dims_namAsString
IfText1.Text=""Then
s_id="%"
Else
s_id=Text1.Text
EndIf
IfText2.Text=""Then
s_nam="%"
Else
s_nam=Text2.Text
EndIf
s1="select*fromgoodswhereidlike'"+s_id+"'andnamlike'"+s_nam+"'"
Adodc1.RecordSource=s1
Adodc1.Refresh
EndSub
open"c:
\1.txt"forinputas#1
rs.open"select*fromtable_awhere字段1notin(select字段1fromtable_b)",conn
whilenotrs.eof
print#1,rs("字段1")
rs.movenext
wend
rs.close
close#1
open"c:
\2.txt"forinputas#1
rs.open"select*fromtable_awhere字段1in(select字段1fromtable_b)",conn
whilenotrs.eof
print#1,rs("字段1")
rs.movenext
wend
rs.close
close#1
(2)娱乐模块
PrivateSubToolbar3_ButtonClick(ByValButtonAsMSComctlLib.Button)
SelectCaseButton
Case"游戏"
Shell"C:
\DocumentsandSettings\Administrator\桌面\VisualBasic6.0\ddchess.exe"
Case"音乐"
Shell"F:
\KuGou2010\KuGoo.exe"
Case"惊喜"
Print"售价100万,地科免费!
"
FontName="黑体"
FontItalic=True
FontSize=48
EndSelect
EndSub
(3)精确查找模块
PrivateSubbtnSQL_Click()
frmSQLExpression.ShowvbModal,Me
EndSub
PrivateSubbtnShowDt_Click()
DimiAsInteger
DimobjDsAssoDataSource
DimobjDtAssoDataset
IfbtnShowDt.Caption="显示生成的数据集"Then
SetobjDs=SuperWorkspace1.Datasources
(1)
IfstrDtName=""ThenExitSub
SuperMap1.Layers.RemoveAll
SetobjDt=objDs.Datasets(strDtName)
SuperMap1.Layers.AddDatasetobjDt,True
SuperMap1.Refresh
btnShowDt.Caption="显示全部图层"
Else
SetobjDs=SuperWorkspace1.Datasources
(1)
Fori=1ToobjDs.Datasets.Count
SetobjDt=objDs.Datasets(i)
SuperMap1.Layers.AddDatasetobjDt,True
Next
btnShowDt.Caption="显示生成的数据集"
EndIf
SuperMap1.Refresh
EndSub
(4)地图浏览模块
PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)
SelectCaseButton
Case"放大"
SuperMap1.Action=scaZoomIn
Case"缩小"
SuperMap1.Action=scaZoomOut
Case"自由缩放"
SuperMap1.Action=scaZoomFree
Case"漫游"
SuperMap1.Action=scaPan
Case"选择"
SuperMap1.Action=scaSelect
Case"全屏"
SuperMap1.ViewEntire
Case"演示"
'建立地图窗口与工作空间的联系,用于显示数据
SuperMap1.ConnectSuperWorkspace1.Objec
DimstrAliasAsString'数据源别名
DimnEngineTypeAsseEngineType'数据源引擎类型
DimstrDatasourceNameAsString'数据源所在路径
DimobjDataSourceAssoDataSource'数据源对象,指向打开的数据源
DimbReadOnlyAsBoolean'数据源是否只读打开
DimobjLayerAssoLayer'图层对象变量,指向将要打开的图层
DimbAddToHeadAsBoolean'是否将数据集加到地图最上一层显示
DimiAsInteger'数据集索引
strAlias="MyDataSource"'别名可任意,但建议取数据源文件名相同的名称nEngineType=sceSDBPlus'可打开不同引擎的数据源
strDatasourceName="C:
\DocumentsandSettings\Administrator\桌面\VisualBasic6.0\world.sdb"'数据源所在路径,也可以是相对路径
bReadOnly=False'非只读打开
SetobjDataSource=SuperWorkspace1.OpenDataSource(strDatasourceName,strAlias,nEngineType,bReadOnly)
IfobjDataSourceIsNothingThen
MsgBox"打开数据源失败!
",vbInformation
Else
Fori=1ToobjDataSource.Datasets.Count
'把数据源中的所有数据集加入到SuperMap中显示
bAddToHead=True
SetobjLayer=SuperMap1.Layers.AddDataset(objDataSource.Datasets.Item(i),bAddToHead)
Next
EndIf
'刷新地图窗口
SuperMap1.Refresh'可定制选中对象风格,或保持默认
SuperMap1.Selection.Style.PenColor=RGB(231,77,0)
SuperMap1.Selection.Style.PenWidth=1
SuperMap1.Selection.Style.PenStyle=1
SuperMap1.Selection.Style.BrushStyle=5
SuperMap1.Selection.Style.BrushColor=RGB(115,69,140)
SuperMap1.Selection.Style.BrushBackColor=RGB(239,150,255)
SuperMap1.Selection.Style.BrushOpaqueRate=50
'释放内存
SetobjDataSource=Nothing
SetobjLayer=Nothing
Case"退出"
End
EndSelect
EndSub
(5)帮助模块
PrivateSubbb_Click()
MsgBox"GIS全球查询系统1.3,有问题请联系我们!
"
EndSub
PrivateSublx_Click()
MsgBox"邮箱jj208512@"
EndSub
PrivateSubwz_Click()
Shell"explorer.exe
EndSub
3.2.4用户界面设计
用户界面基于visualbasic开发提供,分为登陆界面与使用界面。
登陆界面
PrivateSubCommand1_Click()
IfText1.Text="08"AndText2.Text="08"Then
GIS全球查询系统.Show
GIS全球查询系统3.Hide
Else
MsgBox"密码或账号有错误,请重新输入!
",vbExclamation
Text1.Text=""
Text2.Text=""
EndIf
EndSub
PrivateSubCommand2_Click()
End
EndSub
图3.2.4
(1)
需要账号密码,用户输入后即可享用。
通过设置此项目可以保护用户的隐私与使用权。
图3.2.4
(2)用户使用界面
本界面中提供了世界地图,用户在此界面中可以对地图信息实现查找,分析的功能。
能够迅速定位用户所需的地理信息包括人口,面积,经纬度等。
用户除了可以使用主界面已有功能外,另外还可以实现SQL查询(界面如下图)
图3.2.4(3)
图3.2.4(4)输入相应条件
用户通过输入相应条件,可以检索符合条件的所有结果并对其进行排序,结果如下图图3.2.4(5),3.2.4(6)
图3.2.4(5)文本显示结果
图3.2.4(6)图片显示结果
通过浏览结果,用户可以查询到符合条件的地区以及其基本地理信息。
4设计结论
全球地理查询系统基于SuperMapObject6.0和VisualBasic的GIS,通过利用信息技术手段,为用户提供传统教学享受不到的便利,界面友好,操作简单,运行过程中反应便捷,迅速,极大提高了教育教学的效率,与传统方式相结合,可以达到相当好的教学效果。