GIS 软件开发课程设计
报告书
题目名称:全球信息查询系统
院
系: 管理学院地理科学
专业班级: 地理科学 0811
1
1 引言
随着我国经济水平突飞猛进的发展,科学技术不断向前,传统的教学方式效
率不高,因此越来越不能满足教育服务工作的需要。全球查询服务系统将为科学
技术普及中学教学工作提供一种方便、快捷的方式。该系统将为科学普及和教学
工作的发展带来很好的促进作用。
电子地图是空间信息表达与可视化的主要形式,电子地图作为一种新型地图,无
论在地理信息的地图表示方面,还是在地图信息的利用方面,都有其独特的优势。
但是目前人们对电子地图的编绘和使用只是局限在用传统的纸质地图的制图理
论和方法制作电子地图,将电子地图的利用视为传统纸质地图利用方式的自动
化。没有充分挖掘 GIS 独特的优势(比如要素与属性的双向查询),电子地图的应
用也受到限制。空间查询与空间分析是 GIS(Geography Informa-tion System,
地理信息系统)的核心特征之一,也是空间信息服务(如 Web Feature Service)
实现中的关键问题。如何在网络地图服务场景下提供高效能的空间查询与空间分
析功能是网络地图服务器设计与实现中的挑战性问题。
2 系统分析
2.1 需求分析
目前,随着信息化水平的不断提高以及信息技术的普及,相关技术逐渐进入
一般人的生活中,因而数字化信息化的教学方式被引入一般中学教学以及一些科
学技术普及工作中,然而在相关需求不断扩大的现在,与其相配套的技术却略有
滞后,传统的方法不仅操作难度大,同时效率低下。如何满足人们日益增长的需
求以及方便教师与科普工作者进行一般的教育科普工作,是当前必须解决的一个
问题。
基于 GIS 的全球地理查询系统是一个拥有全球地方简易地理信息的数据库,
集成了地理信息管理模块可以实现 GIS 的空间查询,分析功能及可视化功能的软
件。其旨在满足广大教育与科学普及工作者的需求,采用 GIS 技术,使地理数据
的查询、分析更加方便快捷,且操作简单容易,易于一般没有任何计算机操作的
人员使用。实现了授课的高科技化。
该信息平台大大提高了信息化、智能化程度,提高了数据的集成度,对空间
数据的查询,分析更加方便、数据结构更为合理,并增加了对动态数据的存储、
处理和显示,提供了更多的管理与分析模块,在一般中学教学与科学普及工作中
有一定的优势。
2
3 系统设计
3.1 总体设计
3.1.1 用户需求
在系统具体设计前必须明确所要设计系统的用户需求,只有了解了用户的具
体要求才能依此为依据进行系统具体功能的设计,这样设计的系统才有其存在的
意义。然而对于本系统来说其用户的需求是能够方便快捷的查询,分析世界地图
上各个地区的一些基本的地理信息属性,例如面积,经纬度,距离等,并可以实
现数据筛选功能。同时操作要求便捷,数据要用文字,数字,图形等快速的显示
出来。
3.1.2 系统目标
全球地理查询系统的目标主要是实现中学课堂教学及一般科学普及单位科
普工作的信息化,来满足当前社会发展趋势下用户要求,可以给用户提供一些最
基本的地理信息,为了提高课堂教学以及科学普及工作的信息化,加快教育信息
化发展,为地理教学科普而开发基于 SuperMapObject6.0 和 VisualBasic 语言 GIS
建立的全球地理查询系统,并希望通过这个系统使课堂地理教学信息化更加普
及,系统目标如下:
(1)系统应能实现图形和属性的连接,实现用户对图形及属性的双向检索;
(2)系统具有快速对地理信息进行查询、空间分析与显示功能;
(3)系统应具有良好的扩展性与改进空间。
3.1.3 总体结构
本课题所研究的全球地理查询系统根据用户的需要,实现了地理信息查询,
以及测距,测面积的功能。经过需求分析阶段的工作后,系统必须 “做什么”
的问题已经解决了,现在是解决“怎么做”这个问题的时候了。总体设计的基本
目的就是回答系统应该如何实现这个问题。系统总体结构设计是要根据系统分析
的要求和组织的实际情况来对新系统的总体结构形式进行大致设计,它是一种宏
观、总体上的设计和规划。
1)全球地理查询系统主要功能是让用户方便对于基础地理信息的查询与分
析工作 ,方便教学与科普活动。
2)数据的属性查询模块主要功能是对所属地区基本地理信息,例如面积,
经纬度等的查询。
3)条件查询的主要功能是设置一条件,对于满足此条件的地域进行显示的
功能。
系统功能总体结构图如图 1:
3
图 1、系统功能总结构图
3.1.4 系统功能
本课题主要基本地理信息的查询分析服务,目的是为课堂教学更加科学更加
人性化,是用户轻而易举就可以完成地理相关信息的查询与检索功能。本系统重
要包括五个独立的模块:地图浏览模块,查询模块,娱乐模块,精确查询模块,
帮助模块。几个模块的使用大大提高了用户信息检索的效率与精确度,为用户提
供了很大的方便。
3.2 详细设计
3.2.1 子系统设计
本系统主要分为 5 个独立的模块:地图浏览模块、娱乐模块、精确查询模块、
查询功能模块,帮助模块。在地图浏览模块中,用户可以使用相关控件对地图进
行漫游,放大,缩小,也可以根据个人需要进行自由缩放,以及全屏观看在娱乐
模块中,为大家在学习工作之余提供了小游戏。在精确查询模块中,进行 SQL
查询,根据用户的不同需求对信息进行检索,并对检索结果进行排序,并且可以
保存输出查询结果。在查询模块中,可以查询相关地域的属性,使用条件查询可
以对地图上的符合查询条件的地点通过图像进行显示。帮助模块用于对用户提供
一定的帮助。
4
3.2.2 数据库设计
由于是地理信息系统,全球地理查询系统数据库也应包括空间数据库和属性
数据库,再此采用关系型数据库模式。具体的属性数据以图表形式记录,而图形
数据以拓扑关系记录。并且在这些建立这些专题数据库时要注意各种专题信息的
关系字段,保证互相之间都有联系。数据建库时,要按照分类标准进行科学分类,
要符合数据编码的一般要求:
(1)凡国家已施行的编码规范和标准,均按国家规定的执行;
(2)科学编码系统的设计必须可靠地识别数据信息的分类,以较少的代码提
供丰富的参考信息,以及根据代码结构能进行数据间关系的逻辑推理和判别;
(3)编码不宜过长,一般为 4—7 位,以减少出错的可能性和节省存储空间。
对于多要素的数据信息,通过设置特征位来有效地压缩码位的长度;
(4)编码标准化,其内容包括统一的码位长度、一致的码位格式和明确的代
码含义,不能出现代码的多义性等等。
此外,数据质量要严格控制,主要控制保证:数据完整性、数据一致性、
位置精度、时间精度、属性精度。系统 E-R 图如图 2:
管理员
1
管理
1
官方网站
n
浏览,提问
n
管理
1
软件管理
1
包括
n
用户信息
1
用户
n
售后服务
系统维护
1
1
n
n
图 2、系统 E-R
3.2.3 功能模块设计
(1) 查询功能模块
Private Sub Toolbar2_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button
5
Case "属性查询"
SuperMap1.Action = scaSelect
Case "条件查询"
'数据源
'记录集
'矢量数据集
Dim objDs As soDataSource
Dim objDtVector As soDatasetVector
Dim objRecordset As soRecordset
Dim objSelection As soSelection
'选择集
'取矢量数据集:取其中面数据集"World"进行查询
Set objDs = SuperWorkspace1.Datasources.Item("MyDataSource")
If objDs Is Nothing Then Exit Sub
Set objDtVector = objDs.Datasets("World")
If objDtVector Is Nothing Then
MsgBox "打开数据集错误", vbInformation
Exit Sub
End If
'使用 SQ L 过滤条件安从数据集中查询出记录集,
Set objRecordset = objDtVector.Query(txtExpression.Text, True)
If objRecordset Is Nothing Then
Exit Sub
Else
'将查询结果加入到选择集中,使其高亮显示
Set objSelection = SuperMap1.Selection
objSelection.FromRecordset objRecordset
'刷新地图窗口
SuperMap1.Refresh
End If
Set objDtVector = Nothing
Set objRecordset = Nothing
Set objSelection = Nothing
End Select
End Sub
Private Sub Command1_Click()
Dim s1 As String
Dim s_id As String
Dim s_nam As String
6
If Text1.Text = "" Then
s_id = "%"
Else
s_id = Text1.Text
End If
If Text2.Text = "" Then
s_nam = "%"
Else
s_nam = Text2.Text
End If
s1 = "select * from goods where id like '" + s_id + "' and nam like '" + s_nam +
"'"
Adodc1.RecordSource = s1
Adodc1.Refresh
End Sub
open "c:\1.txt" for input as #1
rs.open "select * from table_a where 字段 1 not in (select 字段 1 from
table_b)",conn
while not rs.eof
print #1,rs("字段 1")
rs.movenext
wend
rs.close
close #1
open "c:\2.txt" for input as #1
rs.open "select * from table_a where 字段 1 in (select 字段 1 from table_b)",conn
while not rs.eof
print #1,rs("字段 1")
rs.movenext
wend
rs.close
close #1
(2) 娱乐模块
Private Sub Toolbar3_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button
Case "游戏"
Shell "C:\Documents and Settings\Administrator\桌面\Visual Basic 6.0\ddchess.exe"
Case "音乐"
7
Shell "F:\KuGou2010\KuGoo.exe"
Case "惊喜"
Print "售价 100 万,地科免费!"
FontName ="黑体"
FontItalic = True
FontSize = 48
End Select
End Sub
(3) 精确查找模块
Private Sub btnSQL_Click()
frmSQLExpression.Show vbModal, Me
End Sub
Private Sub btnShowDt_Click()
Dim i As Integer
Dim objDs As soDataSource
Dim objDt As soDataset
If btnShowDt.Caption = "显示生成的数据集" Then
Set objDs = SuperWorkspace1.Datasources(1)
If strDtName = "" Then Exit Sub
SuperMap1.Layers.RemoveAll
Set objDt = objDs.Datasets(strDtName)
SuperMap1.Layers.AddDataset objDt, True
SuperMap1.Refresh
btnShowDt.Caption = "显示全部图层"
Else
Set objDs = SuperWorkspace1.Datasources(1)
For i = 1 To objDs.Datasets.Count
Set objDt = objDs.Datasets(i)
SuperMap1.Layers.AddDataset objDt, True
Next
btnShowDt.Caption = "显示生成的数据集"
End If
SuperMap1.Refresh
End Sub
8