地理信息系统二次开发
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告
课程名称:地理信息系统
设计名称:MapObjects的二次开发
院(系):海洋科学与工程学院
专业班级:100532
姓名
学号:
指导教师:
2013年1 月17 日
一、设计目的:
(1)、实习类型:课程设计;
(2)、了解VB的软硬件环境、MapObjects数据类型;
(3)、初步掌握该软件的基本操作技能;
(4)、能够熟练的操作VB6.0软件,并能应用该软件简单的与MO进行开发
(5)、掌握产品的输出设计。
(6)、培养利用GIS方法解决实际问题的能力。
二、设计主要仪器设备,器材,药品,软件等
(1)软件准备:VB6.0
(2)硬件准备:PC机500M内存,128M显卡(最低)
(3)资料准备:MapObjects控件、USA等SHP文件
三、设计原理和内容:
(1)设计题目:MapObjects的二次开发
(2)具体要求:应用VB软件与MO控件进行结合,实现MO的二次开发。
(3)功能描述:
✓MapObjects是可以允许用户向应用程序中添加地图的制图软件控件集合。
✓MapObjects 可以在多种符合工业标准的开发环境下使用,比如Visual Basic,PowerBuilder,Visual C++等。MapObjects 可以直接嵌入到这些开发环境中使用,允许用户快捷地创建应用程序。
✓MapObjects运行于Windows XP或Windows NT 4.0或更高版本。
✓MapObjects 包括一个ActiveX 控件(OCX) 也就是Map控件,还包括45个ActiveX 自动对象。可用于符合IT行业标准的Windows编程环境。
✓MapObjects主要功能:
显示一张包含多个图层的地图(道路,河流,边界)。
放大,缩小,漫游。
创建新的几何图形,如点,线,圆,多边形。
为图层添加注释。
识别地图上被选中的要素(点,线,面)。
可以通过线,矩形,多边形,圆来选择要素
可以选取距某参照物一定距离范围内的要素。
可以通过SQL语句来选择要素。
对选择的要素进行统计。
查询与更新被选择的要素的属性数据
制作专题地图。
根据字段的值标注图层要素。
显示从航片或卫星图片上获取的图像。
动态显示实时或时间系列数据。
通过输入地址在地图上定位。
将数据投影到不同的坐标系下
✓MapObjects对象模型(具体见附录)
数据通道对象组(Data Access Objects)
地图显示对象组(Map Display Objects)
几何图形对象组(Geometric Objects)
地址匹配对象组(Address Match Objects)
地理坐标对象组(Projection Objects)
四、设计步骤
1、下载MO与VB并安装,搭建开发环境
安装MO:点击Mo22Setup.exe安装Mo,在VB6.0中加载MapObjects控件:
2、系统功能设计
打开文件、图层管理、地图放缩工具、右菜单、属性表信息、图层信息、动态图层实现、分析与查询、专题制图等
3、系统界面设计
4、系统功能实现
4.1(1)对所要实现的功能进行菜单编辑,在窗体空白处点击右键,打开菜单编辑器,在菜单编辑器的标题框中输入菜单名称,名称框输中入对应的菜单名称,通过下方的方向键可以添加新菜单和二级、三级菜单,根据需要,我们设计了文件、图层、编辑和查询四个主菜单以及数个二级菜单。如下图所示:结果如下:
(2)添加图层显示窗口:在工具栏中双击Map工具,窗体中出现的一个白色图层即为图层显示窗口,根据需要调整窗口大小和位置。我们添加一大一小两个显示窗口。以同样的方法可添加用于显示图层名称的lstLayers窗口,用于显示比例尺的ScaleBar窗口以及用于显示时间的StatusBar窗口条,StatusBar工具条可右键打开属性页,在属性页
中修改相应参数。
(3)添加按钮:双击工具栏中的CommandButton工具,窗体中会出现一个按钮,调整按钮的大小和位置,并在属性表中的Caption一栏修改按钮上显示的名称,我们添加了上移、下移、置顶和删除四个按钮。如下图所示:
(4)添加工具栏:先双击工具栏中的ImageList工具,右键打开该工具的属性页,选择图像->插入图片,选择需要的图片,如下图所示:
(5)再在工具栏中双击ToolBar工具,右键打开属性页,在图像列表中选择ImageList1,再点击按钮->插入按钮,选择按钮样式和值,在图像输入框中输入之前在ImageList1中插入的图片的位所对应的数值,如图所示:
(6)添加Timer工具和CommonDialog工具,这样就可以通过相应的代码显示时间和添加文件。窗体布局如下:
4.2主要程序及操作步骤
(1)添加shape文件和栅格数据文件:添加、保存文件,添加文件并在窗体中显示图层信息:
'添加shape文件
Private Sub Add_shpFile_Click()
On Error GoTo err2
CommonDialog1.Filter = "ESRI Shapefiles (*.shp)|*.shp" '打开访问路径
CommonDialog1.InitDir = App.Path + "\data"
CommonDialog1.ShowOpen
If Len(CommonDialog1.FileName) = 0 Then Exit Sub
Dim dc As New DataConnection '返回文件名字并打开文件
dc.Database = CurDir
If Not dc.Connect Then Exit Sub
Dim name As String
name = Left(CommonDialog1.FileTitle, Len(CommonDialog1.FileTitle) - 4)
Dim gs As GeoDataset
Set gs = dc.FindGeoDataset(name)
If gs Is Nothing Then Exit Sub
Set g_layer = New MapLayer '加载图层
monDialog1.ShowColor
g_layer.Symbol.color = monDialog1.color
Set g_layer.GeoDataset = gs
yers.Add g_layer
yers.Add g_layer
yers.Add g_layer
yers.Add g_layer
Me.legend1.setMapSource Map1 '显示标签
legend1.LoadLegend True
Set Rectsel = Nothing
If dc.Connect Then '显示图层信息