超图课程设计.docx

上传人:b****5 文档编号:6898107 上传时间:2023-01-12 格式:DOCX 页数:30 大小:5.09MB
下载 相关 举报
超图课程设计.docx_第1页
第1页 / 共30页
超图课程设计.docx_第2页
第2页 / 共30页
超图课程设计.docx_第3页
第3页 / 共30页
超图课程设计.docx_第4页
第4页 / 共30页
超图课程设计.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

超图课程设计.docx

《超图课程设计.docx》由会员分享,可在线阅读,更多相关《超图课程设计.docx(30页珍藏版)》请在冰豆网上搜索。

超图课程设计.docx

超图课程设计

1课题背景

随着网络技术的迅速发展,各种行业纷纷应用网络技术操作和管理。

当然大随着网络技术的迅速发展,各种行业纷纷应用网络技术操作和管理。

当然学校是一个很大的管理系统,随着学生的大量增加,其管理难度也越来越大,如何将校园导航做好,给予大家提供一定的方便,这就是我们研究这个课题的目的。

在计算机迅速发展的今天,将计算机这一信息处理器应用于学生的个人生活之中已是势必所然,而且这也将校园导航带来前所未有的改变。

采用计算机对校园导航是信息科学化和现代化的重要标志,它也给各大高校带来了明显的社会效益。

主要体现在:

极大地提高了在校师生的方便,给大家对学校的了解,给予了很大的便利。

为了能够更好的给在校师生提供一个校园导航,通过对校园各个建筑物进行了解、勘察,同时,我认为本系统会对我们的生活提供极大的便利,具有一定的实际开发价值和使用价值。

2 需求分析 

应用二次开发模式,以VisualBasic为软件环境,运用Supermap面向对象的二次开发语言,开发出一个山西农业大学校园电子导航地图。

系统应具有以下功能:

1.校园全貌展示(放大、缩小、漫游);

2.普通双向查询,包括图查属性,属性查图功能;

3.最佳路径分析。

2.1地图操作功能

地图显示是地理信息系统的基本模块。

在本系统中,设计了各种地图符号,使图形简洁而形象。

在地图操作功能模块中,可以快速显示矿大校园地图,实现地图放大、缩小、全图显示;二维平面图和三维场景的切换显示;选择、距离量算、面积量算功能;模糊查询的实现,使地图操作更加人性化。

2.2信息查询功能

本系统中,信息查询是一个最主要的功能,主要实现了区域位置查询、服务信息查询、最近设施查询、路经查询。

此项功能帮助用户熟悉校园各类建筑设施的位置及信息,特别是最优路径查询,根据用户提供的若干个位置点和选择的交通工具方式,分析连接各点的最优路径,在地图上高亮显示,并且能进行路径导航显示。

3.课程设计过程

1.对校园影响矢量化、专题制作。

2.实现电子地图的浏览功能

3.校内单位的查询(地块、建筑物)

4.导航功能的实现(最佳、最短路径分析)

5.写出分析、设计报告。

4.课程设计任务

3.1专题图制作

3.1.1.总体设计:

明确制图目标,搜集专题图制作相关资料与数据,制定专题图技术路线与流程,要求技术路线完整,实施性强;

3.1.2.详细设计:

1)专题图制作所需数据的收集与整理,要求数据的现势性好,精度高;

2)地理地图的制作,要求符合国家基本比例尺地形图的要求,内容完整、符合制图规范;

3)专题属性信息的整理与编辑,要求信息丰富,现势性好,数据完整准确;

4)专题地图的设计与制作,要求制图设计方案合理,颜色协调、符号分级明确;

5)专题图的布局与整饰,要求布局合理,要素完善,配置协调。

3.2.空间分析的应用

1.分析问题,应用GIS空间分析功能设计解决方案;

2.收集必要的数据,进行数据转换、编辑与重分类;

3.依据空间分析模型进行数据的各项空间分析。

4.输出地图、图例及图表等可视化成果;

5.不同分析模型间的成果分析与比较。

5.课程设计步骤

5.1专题地图的制作

5.1.1收集山西农业大学遥感地图,可通过稻歌在谷歌地图中进行裁剪,获得底图。

图1裁剪后农大遥感图

5.1.2将图片文件转换成shapefile格式导入到Arcmap中。

图2导入

5.1.3分别建立底图层、道路层、道路缓冲区层、建筑物层等,进行地图矢量化。

图3道路层矢量化

图4建筑物层

图5公共设施层

图6标记地点名称

5.1.4由此,便完成了地理底图的编制。

图7完成地图矢量化

5.2查询界面的建立

查询界面阅览

5.3功能实现

5.3.1打开数据并全幅显示

关键代码:

PrivateSubForm_Load()

'建立地图窗口与工作空间的联系,用于显示数据

SuperMap1.ConnectSuperWorkspace1.Object

DimstrAliasAsString'数据源别名

DimnEngineTypeAsseEngineType'数据源引擎类型

DimstrDataSourceNameAsString'数据源所在路径

DimobjDataSourceAssoDataSource'数据源对象,指向打开的数据源

DimbReadOnlyAsBoolean'数据源是否只读打开

DimobjLayerAssoLayer'图层对象变量,指向将要打开的图层

DimbAddToHeadAsBoolean'是否将数据集加到地图最上一层显示

DimiAsInteger'数据集索引

strAlias="MyDataSource"'别名可任意,但建议取数据源文件名相同的名称,便于区分

nEngineType=sceSDBPlus'可打开不同引擎的数据源,此处打开文件型SDBPlus

strDataSourceName="C:

\ProgramFiles(x86)\SuperMap\SuperMapDeskpro6\Samples\sxau\sxau.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

EndSub

PrivateSubCommand6_Click()

SuperMap1.ViewEntire

EndSub

5.3.2长度测量并将结果显示在文本框中

关键代码:

PrivateSubCommand1_Click()

SuperMap1.Action=scaTrackPolyline

EndSub

PrivateSubSuperMap1_Tracking(ByValxAsDouble,ByValyAsDouble,ByValdCurrentLengthAsDouble,ByValdCurrentAngleAsDouble,ByValdTotalLengthAsDouble,ByValdTotalAreaAsDouble,ByValnButtonClickedAsLong)

DimjieguoAsString

jieguo="当期长度="+Str(dCurrentLength)+"--总长度="+Str(dTotalLength)

Text2.Text=jieguo

EndSub

5.3.3实现自由缩放功能

关键代码:

PrivateSubCommand5_Click()

SuperMap1.Action=scaZoomFree

EndSub

5.3.4实现地图的缩小功能

关键代码:

PrivateSubCommand7_Click()

SuperMap1.Action=scaZoomOut

EndSub

5.3.5实现地图的放大功能

关键代码:

PrivateSubCommand4_Click()

SuperMap1.Action=scaZoomIn

EndSub

5.3.6实现图查属性功能

关键代码:

PrivateSubCommand8_Click()

SuperMap1.Action=scaSelect

EndSub

5.3.7实现属性查图功能

关键代码:

PrivateSubCommand9_Click()

SuperMap1.Action=scaSelect

DimobjDsAssoDataSource'数据源

DimobjDtVectorAssoDatasetVector'矢量数据集

DimobjRecordsetAssoRecordset'记录集

DimobjSelectionAssoSelection'选择集'取矢量数据集:

取其中面数据集"World"进行查询

SetobjDs=SuperWorkspace1.Datasources.Item("MyDataSource")

IfobjDsIsNothingThenExitSub

SetobjDtVector=objDs.Datasets("building")

IfobjDtVectorIsNothingThen

MsgBox"打开数据集错误",vbInformation

ExitSub

EndIf

'使用SQL过滤条件安从数据集中查询出记录集,SQL条件的WHERE子句部分从编辑框中获取。

(Query方法只适用于soDatasetVector类对象)

SetobjRecordset=objDtVector.Query(Text1.Text,True)

IfobjRecordsetIsNothingThen

ExitSub

Else'将查询结果加入到选择集中,使其高亮显示

SetobjSelection=SuperMap1.selection

objSelection.FromRecordsetobjRecordset

SuperGridView1.ConnectobjRecordset'SuperGridView1.'刷新地图窗口

SuperMap1.Refresh

EndIf

SetobjDs=SuperWorkspace1.Datasources.Item("MyDataSource")

IfobjDsIsNothingThenExitSub

SetobjDtVector=objDs.Datasets("building")

IfobjDtVectorIsNothingThen

MsgBox"打开数据集错误",vbInformation

ExitSub

EndIf

'使用SQL过滤条件安从数据集中查询出记录集,SQL条件的WHERE子句部分从编辑框中获取。

(Query方法只适用于soDatasetVector类对象)

SetobjRecordset=objDtVector.Query(Text1.Text,True)

IfobjRecordsetIsNothingThen

ExitSub

Else'将查询结果加入到选择集中,使其高亮显示

SetobjSelection=SuperMap1.selection

objSelection.FromRecordsetobjRecordset

SuperGridView1.ConnectobjRecordset'SuperGridView1.

'刷新地图窗口

SuperMap1.Refresh

EndIf

EndSub

5.3.8实现地图的漫游功能

漫游前

漫游后

向右漫游

向左漫游

关键代码:

PrivateSubCommand3_Click()

SuperMap1.Action=scaPan

EndSub

5.3.9闪烁功能与风格设置

关键代码:

PrivateSubTimer1_Timer()

DimselectionAssoSelection

Setselection=SuperMap1.selection

Ifselection.Count>=1Then

DimrecordsetAssoRecordset

Setrecordset=selection.ToRecordset(False)

recordset.MoveFirst

Setgemtry=recordset.GetGeometry

DimstyleAsNewsoStyle'定义跟踪点风格变量

selection.RemoveAll

EndIf

IftmMod2=0Then

Withstyle

.PenColor=vbRed

.PenWidth=5

.BrushColor=vbYellow

.BrushStyle=10

EndWith

Else

Withstyle

.PenColor=vbGreen

.PenWidth=5

.BrushColor=vbRed

.BrushStyle=10

EndWith

EndIf

SuperMap1.TrackingLayer.ClearEvents

SuperMap1.TrackingLayer.AddEventgemtry,style,"闪烁对象"

SuperMap1.TrackingLayer.Refresh

tm=tm+1

EndSub

5.3.10查询最短路径

关键代码:

PrivateSubCommand2_Click()

DimobjNetAnalystAsNewsoNetworkAnalyst'网络分析对象

DimobjDTVAssoDatasetVector'网络数据集

DimobjSelectionAssoSelection'网络分析结果的选择集

'获得网络数据集)

SetobjDTV=SuperMap1.Layers

(1).Dataset

IfobjDTVIsNothingThenExitSub

'进行最佳路径的网络分析,并将结果显示

SetobjSelection=objNetAnalyst.FindPathEx(objDTV,objfrompoint,objtopoint,1000,True)

IfobjSelectionIsNothingThen

MsgBox"分析失败!

",vbInformation

ExitSub

Else

SuperMap1.selection.RemoveAll

SetSuperMap1.selection=objSelection

EndIf

SuperMap1.Refresh

SetobjNetAnalyst=Nothing

SetobjDTV=Nothing

Setobjfrompoint=Nothing

SetobjSelection=Nothing

Setobjtopoint=Nothing

EndSub

PrivateSubCommand10_Click()

qi=True

SuperMap1.Action=scaSelect

EndSub

PrivateSubCommand11_Click()

zhong=True

SuperMap1.Action=scaSelect

EndSub

PrivateSubSuperMap1_MouseDown(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)

Ifqi=TrueThen

objfrompoint.x=SuperMap1.PixelToMapX(ScaleX(x,vbTwips,vbPixels))

objfrompoint.y=SuperMap1.PixelToMapY(ScaleY(y,vbTwips,vbPixels))

qi=False

EndIf

Ifzhong=TrueThen

objtopoint.x=SuperMap1.PixelToMapX(ScaleX(x,vbTwips,vbPixels))

objtopoint.y=SuperMap1.PixelToMapY(ScaleY(y,vbTwips,vbPixels))

zhong=False

EndIf

EndSub

6.课程设计总结

6.1成员分工

杜会芳:

负责专题地图的矢量化处理;

高婷、关晓丹:

负责地图的功能实现;

周小驰:

整理分析课程设计总结。

6.2心得体会

在这次GIS的课程设计中我们小组确实付出很多的努力,以前的实验总是按照书本来操作,但是这次有些不同,虽然有借鉴之处,除此之外自己不仅提高GIS的应用基础,而且在一定程度上更加深层次的了解到GIS的作用及功能,为以后的会提供了很好的基础。

通过此次课程设计,使我们更加扎实的掌握了有关ArcGis方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我们在这方面的知识欠缺和经验不足。

实践出真知,通过亲自动手操作,使我们掌握的知识不再是纸上谈兵。

在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。

最终的检测调试环节,我们小组组员为每一个错误的修改正确而欢呼。

通过这次课程设计,认识到这个软件的强大及方便。

我们巩固了对地理信息系统数据结构理解,基本上掌握了地理信息系统空间数据库的设计思路,掌握了GIS基础平台的使用方法,包括数据的输入、数据的处理、图形的编辑、数据库设计、空间分析和专题地图的输出等,为以后的学习奠定了基础。

回顾起此课程设计,至今我们仍感慨颇多,从理论到实践,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

此次设计也让我们明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。

6.3结语

校园导航系统的建立是校园数字化的一种表现。

同时为学校日后建立科学、智能、网络一体化的综合校园管理体系奠定了基础。

本校园导航系统应用SuperMapDeskpro6,实现了图形数据编辑处理,其为校园导航系统提供了可有效使用的地理底图。

利用SuperMapObjects全面的GIS功能,使系统实现了属性数据与空间数据双向查询、空间分析、空间数据的数据库存储与管理等功能。

 

7.附录

全体实现代码

PublictmAsInteger

PublicgemtryAssoGeometry

PrivateSubCommand1_Click()

SuperMap1.Action=scaTrackPolyline

EndSub

PrivateSubCommand2_Click()

DimobjNetAnalystAsNewsoNetworkAnalyst'网络分析对象

DimobjDTVAssoDatasetVector'网络数据集

DimobjSelectionAssoSelection'网络分析结果的选择集

DimobjfrompointAssoPoint

DimobjtopointAssoPoint

'获得网络数据集

SetobjDTV=SuperMap1.Layers

(1).Dataset

IfobjDTVIsNothingThenExitSub

'进行最佳路径的网络分析,并将结果显示

SetobjSelection=objNetAnalyst.FindPathEx(objDTV,objfrompoint,objtopoint,1000,True)

IfobjSelectionIsNothingThen

MsgBox"分析失败!

",vbInformation

ExitSub

Else

SuperMap1.selection.RemoveAll

SetSuperMap1.selection=objSelection

EndIf

SuperMap1.Refresh

SetobjNetAnalyst=Nothing

SetobjDTV=Nothing

Setobjfrompoint=Nothing

SetobjSelection=Nothing

Setobjtopoint=Nothing

EndSub

PrivateSubCommand3_Click()

SuperMap1.Action=scaPan

EndSub

PrivateSubCommand4_Click()

SuperMap1.Action=scaZoomIn

EndSub

PrivateSubCommand5_Click()

SuperMap1.Action=scaZoomFree

EndSub

PrivateSubCommand6_Click()

SuperMap1.ViewEntire

EndSub

PrivateSubCommand7_Click()

Supe

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1